Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- select
- 정처기
- 카카오코테
- 안드로이드스튜디오
- 혼공단
- 티스토리챌린지
- 인프런
- 코테
- 스터디
- 혼공챌린지
- Kotlin
- Android
- 정보처리기사
- java
- 알고리즘
- 자료구조
- join
- 안드로이드
- 오블완
- 코틀린
- SQL
- 혼공파
- groupby
- doitandroid
- 프로그래머스
- Til
- 기술면접
- 자바
- CS
- MySQL
Archives
- Today
- Total
Welcome! Everything is fine.
[프로그래머스/Lv.1] 2016년 - Java 본문
728x90
📌 문제
📌 풀이
처음에 어떻게 풀어야할지 막막했다. 왜 이런 날짜, 시간 계산이 잘 안되는지..결국 검색을 해서 보고 푼 문제이다.
먼저 변수를 선언해주었다. dayOfTheWeek에는 금요일부터 화요일까지의 요일을 담고(2016년 1월 1일이 금요일이므로), month에는 1월부터 12월까지 각 월의 일수를 담았다.
int answer = 0;
String[] dayOfTheWeek = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
그리고나서 [입력된 월 - 1]만큼 반복문을 돌며 입력된 월의 일수를 answer에 계속 더한다.(1 ~ 4월까지의 일수) 반복문이 끝나면 입력된 일수를 answer에 더한다. 1월 1일은 하루가 지난걸로 보지 않으므로 [b - 1]을 한다.
for (int i = 0; i < a - 1; i++) {
answer += month[i];
}
answer += b - 1;
모든 계산이 끝나면 처음 만들었던 요일 배열에서 [answer % 7] 번째 인덱스에 있는 요일을 반환한다.
return dayOfTheWeek[answer % 7];
📌 전체 코드
class Solution {
public String solution(int a, int b) {
int answer = 0;
String[] dayOfTheWeek = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for (int i = 0; i < a - 1; i++) {
answer += month[i];
}
answer += b - 1;
return dayOfTheWeek[answer % 7];
}
}
LocalDate를 가져와 간단하게 풀 수 있었다. getDayOfWeek() 는 특정 날짜의 요일을 반환하는 메서드이다. LocalDate.of(2016, a, b).getDayOfWeek().toString()을 출력해보니 TUESDAY가 나왔다. 여기서 앞 3자리만 반환해야하므로 substring()으로 잘라준다.
import java.time.LocalDate;
class Solution {
public String solution(int a, int b) {
return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);
}
}
'프로그래머스 > Lv.1' 카테고리의 다른 글
[프로그래머스/Lv.1] 신규 아이디 추천(2021 KAKAO BLIND RECRUITMENT) - Java (1) | 2024.04.19 |
---|---|
[프로그래머스/Lv.1] PCCE 기출문제 10번 / 데이터 분석 - Java (0) | 2024.04.18 |
[프로그래머스/Lv.1] 바탕화면 정리 - Java (0) | 2024.04.16 |
[프로그래머스/Lv.1] 카드뭉치 - Java (0) | 2024.04.16 |
[프로그래머스/Lv.1] 개인정보 수집 유효기간(2023 KAKAO BLIND RECRUITMENT) - Java (0) | 2024.04.15 |