728x90

처음에 int형으로 입력받아서 처리 하려고 하니까

출력부분에서 1~9월이나 1~9일 999~1년 까지의 앞자리 0의 처리가 더 복잡할 것 같아서 

String문자열을 이용해서 받아서 처리 했다.

풀이)

import java.util.Scanner;
import java.io.FileInputStream;

class Solution
{
	public static void main(String args[]) throws Exception
	{
		
		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();
		

		for(int test_case = 1; test_case <= T; test_case++)
		{
		
			String cal = sc.next();
            int y=Integer.parseInt(cal.substring(0,4));
            int m=Integer.parseInt(cal.substring(4,6));
            int d=Integer.parseInt(cal.substring(6,8));

            if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
                if(d>=1&&d<=31){
                    System.out.printf("#%d %s/%s/%s \n", test_case, cal.substring(0,4),cal.substring(4,6),cal.substring(6,8));
                }else{
                    System.out.println("#"+test_case+" "+"-1");
                }
            }else if(m==4||m==6||m==9||m==11){
                if(d>=1&&d<=30){
                    System.out.printf("#%d %s/%s/%s \n", test_case, cal.substring(0,4),cal.substring(4,6),cal.substring(6,8));
                }else{
                    System.out.println("#"+test_case+" "+"-1");
                }
            } else if (m==2) {
                if(d>=1&&d<=28){
                    System.out.printf("#%d %s/%s/%s \n", test_case, cal.substring(0,4),cal.substring(4,6),cal.substring(6,8));
                }else{
                    System.out.println("#"+test_case+" "+"-1");
                }
            }else{
                System.out.println("#"+test_case+" "+"-1");
            }

		}
	}
}
728x90