본문 바로가기
Study with me/프로그래머스 L0 마스터하기

프로그래머스 - L0 날짜비교하기

by 외계나무 2024. 1. 17.

프로그래머스 - level 0 날짜 비교하기

if 중첩을 썼는데, 여러 풀이가 나올 수 있을 것 같아 가져옴.

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;
                }
            }
        }
    }
}

 

LocalDate와 isBefore() / isAfter() / isEqual()

import java.time.LocalDate;

class Solution {

    public int solution(int[] date1, int[] date2) {

        LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]);
        LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]);

        if (dateA.isBefore(dateB)) {
            return 1;
        } else {
            return 0;
        }
    }
}

 

배열 비교 Arrays.compare()

import java.util.*;

class Solution {
    public int solution(int[] date1, int[] date2) {
        return Arrays.compare(date1, date2) < 0 ? 1 : 0;
    }
}

 

숫자 자릿수로 날짜 형식을 정수로 바꿔서 비교하는 방법

class Solution {
    public int solution(int[] date1, int[] date2) {
        return date1[0] * 10000 + date1[1] * 100 + date1[2] < date2[0] * 10000 + date2[1] * 100 + date2[2] ? 1 : 0;
    }
}