프로그래머스 181838 날짜 비교하기 JAVA

sundays·2023년 5월 30일
0

문제

날짜 비교하기

풀이

날짜 비교하는 문제는 카카오 코테에서도 종종나오는 문제인데 솔직히 개인적으로는 잘 못푸는 문제들이다.
이 문제는 java의 date의 api인 compareTo에 의존하지 않고 풀어 보았다.

  1. 1차 코드
return Integer.praseInt(date1[0] + date1[1] + date1[2] + "") < 
	Integer.parseInt(date2[0] + date2[1] + date2[2] + ""? ? 1 : 0;

이코드는 실패한다
왜냐하면 인덱스 1에 들어가는 데이터가 1 부터 12까지 이다
무슨말이냐 하면 2022년 1월 1일인경우와 2021년 12월 12일을 비교하게 될 경우 이렇게 된다

202211 < 20211212

년도부터 이미 22년이 더 늦지만 21년도의 Integer 데이터가 더 크기 때문에 오류로 판별된다
월과 일이 두자리인것을 보장을 해준다면 이 코드는 작동할 수 있을것이다

  1. 2차 코드
return date1[0] < date2[0] ? 1 : date1[1] < date2[1] ? 1 : date1[2] < date[2] ? 1 : 0;

이 코드는 실패한다
왜냐하면 년도를 나타내는 데이터가 date2(예 : 2022) 보다 date1(예 : 2023)이 더 큰경우에는 무조건 0을 리턴해야 한다. 년도부터 일단 먼저 시작됬으니 당연하다.
하지만 이코드에서는 그 0을 리턴하는 자체가 인덱스 2에 달려 있는 셈이 되기 때문에 적절하지 않다

그래서 나의 정답 코드는 인덱스마다 전부 if-else 를 리턴하고자 하였다

전체 코드

	public int solution(int[] date1, int[] date2) {
        if (date1[0] < date2[0]) {
            return 1;
        } else if (date1[0] > date2[0]) {
            return 0;
        } 
        if (date1[1] < date2[1]) {
            return 1;
        } else if (date1[1] > date2[1]) {
            return 0;
        }
        
        if (date1[2] < date2[2]) {
            return 1;
        } else if (date1[2] > date2[2]) {
            return 0;
        }
        
        return 0;
    }
profile
develop life

0개의 댓글