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
- bit manipulation
- geometry
- Number Theory
- database
- Data Structure
- Math
- sorting
- simulation
- greedy
- Binary Search
- 자바
- SQL
- array
- 구현
- two pointers
- Tree
- Stack
- implement
- Class
- dynamic programming
- Counting
- hash table
- 코테
- string
- Matrix
- 파이썬
- Binary Tree
- Method
- java
- 코딩테스트
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 2016년 본문
1. Input
1) 정수 a
2) 정수 b
2. Output
1) 2016년 a월 b일의 요일을 나타내는 문자열
2) 요일의 이름은 일요일부터 토요일까지 각각 “SUN”, “MON”, “TUE”, “WED”, “THU”, “FRI”, “SAT”
3. Constraint
1) 2016년은 윤년
2) 2016년 a월 b일은 실제로 있는 날로, 13월 26일같은 날짜는 주어지지 않는다.
4. Example
Input: a=5, b=24 -> Output: “TUE”
설명: 2016년 5월 24일은 화요일이다.
5. Code
1) 첫 코드(2022/??)
String answer = "";
int[] day = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int count = -1; // a=1, b=1일 때 금요일을 7로 나눈 나머지가 0이 되게 맞춤
// 날짜 세기
if(a != 1)
for(int i=0 ; i<a-1 ; i++)
count += day[i];
count += b;
// count를 7로 나눈 나머지 확인
// 나머지가 0일때부터 FRI, SAT, SUN, MON, TUE, WED, THU
switch(count%7){
case 0:
answer = "FRI"; break;
case 1:
answer = "SAT"; break;
case 2:
answer = "SUN"; break;
case 3:
answer = "MON"; break;
case 4:
answer = "TUE"; break;
case 5:
answer = "WED"; break;
case 6:
answer = "THU"; break;
}
return answer;
2) 다시 풀어본 코드(2022/11/26)
String[] dayOfWeek = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
int[] days = {31,29,31,30,31,30,31,31,30,31,30,31};
int countDays = b;
for(int i=0 ; i<a-1 ; i++)
countDays += days[i];
return dayOfWeek[(countDays-1)%7];
- 코드는 심플해졌지만, 1번이 평균적으로 0.01ms 빠름
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.2] 이진 변환 반복하기 (0) | 2022.11.28 |
---|---|
[프로그래머스/Lv.1] 폰켓몬 (0) | 2022.11.26 |
[프로그래머스/Lv.1] 가운데 글자 가져오기 (0) | 2022.11.26 |
[프로그래머스/Lv.1] 같은 숫자는 싫어 (0) | 2022.11.26 |
[프로그래머스/Lv.1] 나누어 떨어지는 숫자 배열 (0) | 2022.11.26 |