날짜 비교하기 - LV.0
문제
테스트 (인텔리제이)
import java.time.LocalDate;
import java.util.Arrays;
public class 날짜_비교하기 {
public static void main(String[] args) {
/*
정수 배열 date1과 date2가 매개변수로 주어집니다.
두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다.
각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.
만약 date1이 date2보다 앞서는 날짜라면 1을,
아니면 0을 return 하는 solution 함수를 완성해 주세요.
제한사항
- date1의 길이 = date2의 길이 = 3
- 0 ≤ year ≤ 10,000
- 1 ≤ month ≤ 12
- day는 month에 따라 가능한 날짜로 주어집니다.
입출력 예
date1 date2 result
[2021, 12, 28] [2021, 12, 29] 1
[1024, 10, 24] [1024, 10, 24] 0
입출력 예 설명
#1
date1이 date2보다 하루 앞서기 때문에 1을 return 합니다.
#2
date1과 date2는 날짜가 서로 같으므로 date1이 더 앞서는 날짜가 아닙니다.
따라서 0을 return 합니다.
*/
int[] date1 = {2022, 1, 1};
int[] date2 = {2021, 12, 31};
int answer = solution1(date1, date2);
System.out.println(answer);
solution2(date1, date2);
solution3(date1, date2);
solution4(date1, date2);
}
public static int solution1(int[] date1, int[] date2) {
if (date2[0] > date1[0]) {
return 1;
} else if (date2[0] < date1[0]) {
return 0;
} else if (date2[1] > date1[1]) {
return 1;
} else if (date2[1] < date1[1]) {
return 0;
} else if (date2[2] > date1[2]) {
return 1;
}
return 0;
}
public static void solution2(int[] date1, int[] date2) {
int answer = 0;
LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]);
LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]);
if (dateA.isBefore(dateB)) {
answer = 1;
}
System.out.println(answer);
}
public static void solution3(int[] date1, int[] date2) {
int answer = 0;
answer = Arrays.compare(date1, date2) < 0 ? 1 : 0;
System.out.println(answer);
}
public static void solution4(int[] date1, int[] date2) {
int answer = 0;
for (int i = 0; i < date1.length; i++) {
if (date2[i] > date1[i]) {
answer = 1;
break;
} else if (date2[i] < date1[i]) {
break;
}
}
System.out.println(answer);
}
}
프로그래머스 코드
// class Solution {
// public int solution(int[] date1, int[] date2) {
// if (date2[0] > date1[0]) {
// return 1;
// } else if (date2[0] < date1[0]) {
// return 0;
// } else if (date2[1] > date1[1]) {
// return 1;
// } else if (date2[1] < date1[1]) {
// return 0;
// } else if (date2[2] > date1[2]) {
// return 1;
// }
// return 0;
// }
// }
// import java.util.*;
// import java.time.*;
// class Solution {
// public int solution(int[] date1, int[] date2) {
// int answer = 0;
// LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]);
// LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]);
// if (dateA.isBefore(dateB)) {
// answer = 1;
// }
// return answer;
// }
// }
// import java.util.*;
// import java.time.*;
// class Solution {
// public int solution(int[] date1, int[] date2) {
// int answer = 0;
// answer = Arrays.compare(date1, date2) < 0 ? 1 : 0;
// return answer;
// }
// }
import java.util.*;
import java.time.*;
class Solution {
public int solution(int[] date1, int[] date2) {
int answer = 0;
for (int i = 0; i < date1.length; i++) {
if (date2[i] > date1[i]) {
answer = 1;
break;
} else if (date2[i] < date1[i]) {
break;
}
}
return answer;
}
}