728x90
( 연습문제 / 2016년 )
[문제]
문제 설명
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각
SUN,MON,TUE,WED,THU,FRI,SAT
입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
제한사항
- 2016년은 윤년입니다.
- 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)
입출력 예시
a | b | result |
5 | 24 | "TUE" |
[코드]
자바
class Solution {
public String solution(int a, int b) {
String[] week = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
int[] month = {31,29,31,30,31,30,31,31,30,31,30,31};
int day = b;
for(int i = 0; i < a - 1; i++) day += month[i];
return week[day % 7];
}
}
코틀린
class Solution {
fun solution(a: Int, b: Int): String {
val week = arrayOf("THU","FRI","SAT","SUN","MON","TUE","WED")
val month = intArrayOf(31,29,31,30,31,30,31,31,30,31,30,31)
return week[((0 until a - 1).fold(0){ acc, i -> acc + month[i] } + b) % 7];
}
}
제가 잘못 알고 있거나 잘못된 부분이 있을 경우 알려주시고 추가로 궁금한 점 있으신 분들도 댓글이나 메일 주시면 성실히 답변해 드리겠습니다.🧑🏻💻
감사합니다~😄
728x90
'Algorithm > level1' 카테고리의 다른 글
[ 프로그래머스 - Java & Kotlin ] 두 개 뽑아서 더하기 ( 자바 & 코틀린 ) (0) | 2021.10.08 |
---|---|
[ 프로그래머스 - MySQL ] 아픈 동물 찾기 ( MySQL ) (0) | 2021.10.08 |
[ 프로그래머스 - MySQL ] 어린 동물 찾기 ( MySQL ) (0) | 2021.10.08 |
[ 프로그래머스 - Java & Kotlin ] 최소직사각형 ( 자바 & 코틀린 ) (0) | 2021.10.08 |
[ 프로그래머스 - Java & Kotlin ] 복서 정렬하기 ( 자바 & 코틀린 ) (0) | 2021.10.08 |