<함수를 활용한 문제 - 그 계절, 그 날>
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
풀이 방식
import java.util.Scanner;
public class Main {
public static boolean isLeapYear(int year){
if(year % 4 == 0){
if(year % 100 == 0){
if(year % 400 == 0){
return true;
}else{
return false;
}
}else{
return true;
}
}else{
return false;
}
}
public static String searchSeason(int month) {
if(month == 12 || month == 1 || month == 2) {
return "Winter";
} else if(month == 3 || month == 4 || month == 5) {
return "Spring";
} else if(month == 6 || month == 7 || month == 8) {
return "Summer";
} else if(month == 9 || month == 10 || month == 11) {
return "Fall";
} else {
return "-1";
}
}
public static boolean isExist(int year, int month, int day){
int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int[] leap_days = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(month < 1 || month > 12){
return false;
}
if(isLeapYear(year)){
if(day < 1 || day > leap_days[month-1]){
return false;
}
}else{
if(day < 1 || day > days[month-1]){
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Y = sc.nextInt();
int M = sc.nextInt();
int D = sc.nextInt();
if(isExist(Y,M,D)){
System.out.println(searchSeason(M));
}else{
System.out.print(-1);
}
}
}
1. isLeapYear(int year)
인자값을 year값으로 받아 해당 년도가 윤년인지 판단하는 로직을 진행한다.
2. SearchSeason(int month)
인자값을 month를 받아서, 해당 월이 어느 계절에 속하는지 string값으로 반환하는 로직을 작성한다.
3. isExist(int year, int month, int day)
- 인자 값을 year, month, day를 모두 받는다
- year로 먼저 윤년인지를 파악한다.
- month가 범위를 벗어나지 않았다면 사전에 정의해둔 days와 leap_days의 배열안의 날짜를 조회한다.
- day가 날짜를 벗어나지 않는지 확인하고 true를 반환한다.
위와 같은 함수들을 이용하여 쉽게 문제 풀이에 접근할 수 있다.
'CodingTest' 카테고리의 다른 글
[백준] 1806번 부분합 (투포인터, 슬라이딩 윈도우) - JAVA (0) | 2025.03.30 |
---|---|
[프로그래머스 알고리즘 고득점 kit] 이분탐색 징검다리 - JAVA (1) | 2025.03.22 |
[프로그래머스 알고리즘 고득점 kit] 동적계획법(Dynamic Programming) 정수 삼각형 - JAVA (0) | 2025.02.24 |
[프로그래머스 알고리즘 고득점 kit] 탐욕법(Greedy) 조이스틱 - JAVA (2) | 2025.02.17 |
[코드트리] 함수를 이용한 부분 문자열 위치 구하기 - 코드트리 조별과제 (0) | 2024.08.14 |