일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스택
- C++
- Firebase
- 구현
- 유니티
- UnrealEngine
- unityui
- UE4
- Unity
- Unity2D
- 스파르타내일배움캠프
- c#
- Inventory
- 내일배움캠프
- QueryDSL
- 순열
- 워크플로
- 언리얼엔진
- 문자열
- 스파르타내일배움캠프TIL
- 포톤
- 알고리즘
- 유클리드호제법
- Unity3d
- BFS
- FSM
- Photon
- 프로그래머스
- 이분탐색
- 해시
Archives
- Today
- Total
개발 낙서장
[프로그래머스][알고리즘][JAVA] 2016년 본문
2016년
https://school.programmers.co.kr/learn/courses/30/lessons/12901
풀이 방법
날짜에 대한 알고리즘만 잘 설계하면 쉽게 풀리는 문제이다.1월 1일이 금요일이라 했으니 1월 1일을 기준으로 며칠이 지났는지를 계산하여 7로 나눈 나머지로 요일을 구하면 된다.
이미 있는 클래스를 사용하면 코드 몇줄로 끝나겠지만 그렇게 하면 코딩 테스트를 보는 이유가 없기 때문에 직접 구현했다.
소스 코드
더보기
import java.util.HashMap;
import java.util.Map;
class Solution {
public String solution(int a, int b) {
String answer = "";
Map<Integer, Integer> date_map = new HashMap<>();
String[] day_arr = new String[] {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
date_map.put(1, 31);
date_map.put(2, 29);
date_map.put(3, 31);
date_map.put(4, 30);
date_map.put(5, 31);
date_map.put(6, 30);
date_map.put(7, 31);
date_map.put(8, 31);
date_map.put(9, 30);
date_map.put(10, 31);
date_map.put(11, 30);
date_map.put(12, 31);
int date = 0;
for(int i = 1; i < a; i++)
date += date_map.get(i);
date += b;
date -= 1;
answer = day_arr[date % 7];
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스][정렬][JAVA] 과일 장수 (0) | 2024.01.09 |
---|---|
[프로그래머스][재귀][JAVA] 카드 뭉치 (0) | 2024.01.04 |
[프로그래머스][자료구조][JAVA] 명예의 전당 (1) (0) | 2024.01.02 |
[프로그래머스][수학][JAVA] 콜라 문제 (0) | 2023.12.28 |
[프로그래머스][문자열][JAVA] 푸드 파이트 대회 (0) | 2023.12.28 |
Comments