문제: 22220101 -> 2222/01/01 로 바꿔준다.

조건1 : 년월에 어긋나는 날은 -1 로 출력한다.

조건2 : 윤년은 제외하고 평년으로만 한다.

 

 

 

package test;

import java.io.IOException;
import java.util.Scanner;

public class Main {
	
	static int [] day = {31,28,31,30,31, 30,31,31,30,31, 30,31};
	


	public static void main(String[] args) throws IOException {

		int [] day = {31,28,31,30,31, 30,31,31,30,31, 30,31};
		String yyyy;
		int mm;
		String s_mm;
		int dd;
		String s_dd;
		
		Scanner sc = new Scanner(System.in);
		String input = sc.next();
		yyyy=input.substring(0, 4);
		mm=Integer.parseInt(input.substring(4, 6));
		dd=Integer.parseInt(input.substring(6, 8));
		
		if(mm>0&&mm<13&&dd>0&&dd<=day[mm-1]) {
			
			s_mm=Integer.toString(mm);
			s_dd=Integer.toString(dd);
			if(mm<10) {
				s_mm="0"+Integer.toString(mm);
			}
			if(dd<10) {
				s_dd="0"+Integer.toString(dd);
			}

			System.out.println(yyyy+"/"+s_mm+"/"+s_dd);
			
		}else {
			System.out.println("-1");
		}
		
			



	}

}

문제해결

1. 달은 1~12 사이의 수이면서 일은 달에 따라 달라진다

2. 일에 대해서는 배열에 각 월의 최대수를 미리 입력해놓는다

3. 1자리수의 월과 일은 앞에 0을 붙여준다.

'알고리즘(종합) > Lv.1' 카테고리의 다른 글

2072 - 홀수만 더하기  (0) 2022.11.10
Do it - 기본 자료구조  (0) 2022.11.10
복사했습니다!