코딩테스트연습/[프로그래머스] Java

[프로그래머스] Java 코딩테스트 연습 - 날짜 비교하기

_꼬마돌 2023. 7. 6. 01:07
반응형

[프로그래머스] Java 코딩테스트 연습 - 날짜 비교하기

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/181838

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날자를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 
만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return하는 solution 함수를 완성해 주세요. 

 

풀이

실패,, 채점했더니 통과한 테스트도 있고 실패한 테스트도 군데군데 있었다.

class Solution {
    public int solution(int[] date1, int[] date2) {
        int answer = 0;
        
        for (int i = 0; i < date1.length; i++) {
            if (date1[i] < date2[i]) {
                answer = 1;
            } else {
                answer = 0;
            }
        }
        
        return answer;
    }
}
아무래도 date1과 date2의 연도, 월, 일 중 같은 부분이 있어서 오류가 나는 것 같아 년월일을 하나하나 비교하기로 했다. 값이 작으면 앞서는 날짜이므로 1을 return하고 값이 크면 0을 return하도록 했다.

 

소스코드

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

 

반응형