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
- 그리디
- 스프링
- spring
- java
- jpa
- Thymeleaf
- 인프런
- http
- pointcut
- springdatajpa
- db
- 스프링 핵심 원리
- AOP
- kotlin
- Proxy
- 스프링 핵심 기능
- Spring Boot
- Android
- Exception
- Servlet
- SpringBoot
- 자바
- transaction
- JDBC
- QueryDSL
- 알고리즘
- JPQL
- 백준
- 김영한
- Greedy
Archives
- Today
- Total
개발자되기 프로젝트
[프로그래머스] 2016년 본문
1. 문제
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" |
2. 문제 정리
- 1월 1일이 금요일 일 때, m월 d일의 요일은???
- 1/1 부터 m/d까지 일수를 계산하고 7로 나누었을 때의 나머지를 확인하면 된다.
- 구현해야 할 기능
- m월d일 까지 일 수 계산
- 1월1일과의 차이를 7로 나누었을 때의 나머지의 경우에 따라 요일 반환.
3. 코드
class Solution {
public String solution(int m, int d) {
int days = 0;
for (int i=1; i<m; i++){
days += getDays(i);
}
days += d;
return getDay(days);
}
public int getDays(int m){
switch (m){
case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
case 2: return 29;
case 4: case 6: case 9: case 11: return 30;
}
return 0;
}
public String getDay(int days){
int delta = (days - 1) % 7;
switch (delta){
case 0: return "FRI";
case 1: return "SAT";
case 2: return "SUN";
case 3: return "MON";
case 4: return "TUE";
case 5: return "WED";
case 6: return "THU";
}
return "";
}
}
4. GitHub : 211211 2016년
'코테준비' 카테고리의 다른 글
[프로그래머스] 나머지가 1되는 수 찾기 (0) | 2021.12.11 |
---|---|
[프로그래머스] 최소 직사각형 (0) | 2021.12.11 |
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2021.12.10 |
[프로그래머스] 예산 (0) | 2021.12.10 |
[프로그래머스] 3진법 뒤집기 (0) | 2021.12.10 |
Comments