[SW Expert Academy] 2056. 연월일 달력

사용 언어 : JAVA

결과

  • 메모리 : 20,252 kb
  • 실행 시간 : 135 ms
  • 코드 길이 : 2,812

풀이

package level_1;

import java.util.Scanner;

public class java_2056_2 {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		
		for (int i = 1; i <= T; i++) {
			String date = sc.next();
			
			int year = Integer.parseInt(date.substring(0,4));
			int month = Integer.parseInt(date.substring(4,6));
			int day = Integer.parseInt(date.substring(6));
			
			String answer = "#"+i+" "+date.substring(0,4) + "/" + date.substring(4,6) + "/" + date.substring(6) ;
			String wrong = "#"+i+" -1";
			
			if ( month > 0 && month < 13 ) {
				if ( month == 2 ) {
					if ( day > 0 && day < 29 ) {
						System.out.println(answer);
					}
					else {
						System.out.println(wrong);
					}
				}
				
				else if ( month == 1 || month == 3  || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
					if ( day > 0 && day < 32 ) {
						System.out.println(answer);
					}
					else {
						System.out.println(wrong);
					}
				}
				else {
					if ( day > 0 && day < 31 ) {
						System.out.println(answer);
					}
					else {
						System.out.println(wrong);
					}
				}
				
			}
			else {
				System.out.println(wrong);
			}
		}
		
		
		
	}

}

주석

- 더 간단하게 할 수 있는 방법이 있을 것 같은데, 범위로 if문 사용하려고 조금 복잡하게 구현해봤다.

- 처음에는 여러 테스트 케이스에 대한 T 설정을 해두지 않아서 Fail이 떴었다.