일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 언리얼엔진
- 워크플로
- 해시
- 내일배움캠프
- 알고리즘
- Inventory
- 유니티
- 스파르타내일배움캠프TIL
- 스파르타내일배움캠프
- Unity3d
- UnrealEngine
- BFS
- Unity
- 구현
- Photon
- 포톤
- QueryDSL
- 이분탐색
- 순열
- c#
- Firebase
- C++
- 스택
- unityui
- FSM
- 프로그래머스
- UE4
- Unity2D
- 문자열
- 유클리드호제법
Archives
- Today
- Total
개발 낙서장
[프로그래머스][알고리즘][JAVA] 2016년 본문
2016년
https://school.programmers.co.kr/learn/courses/30/lessons/12901
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 방법
날짜에 대한 알고리즘만 잘 설계하면 쉽게 풀리는 문제이다.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] 푸드 파이트 대회 (1) | 2023.12.28 |