https://school.programmers.co.kr/learn/courses/30/lessons/12901
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2016년 문제 Java로 풀이하겠습니다.

이 문제는 2016년 특정 날짜가 무슨 요일인지 찾는 것입니다.
저는 다음과 같이 문제 풀이 하였습니다.
class Solution {
public String solution(int a, int b) {
String[] week = {"SUN","MON","TUE","WED","THU","FRI","SAT"};
int sum = 0;
for(int i=1; i<a; i++){
if(i==4 || i==6|| i==9|| i==11){
sum+=30;
}else if(i == 2){
sum+=29;
}else{
sum+=31;
}
}
return week[(sum+b+4)%7];
}
}
- 요일을 나타내는 문자열 배열 week을 선언합니다.
- 반복문을 사용하여 주어진 월 a 이전의 월까지의 날 수를 누적합니다.
ex) a= 5라면 4월까지 날 수를 누적 - 4,6,9,11월은 30일이고 2월은 29일 그리고 나머지 월은 31일로 계산합니다.
- 마지막으로 week 배열의 인덱스를 (sum +b + 4) % 7로 설정하여 해당 요일을 반환합니다.
여기서 4는 1월 1일이 금요일이기 때문에 첫 요일을 기준으로 맞추기 위함입니다.
다른 이견이 있다면 댓글로 자유롭게 남겨주세요.

'Algorithm > CodingTest' 카테고리의 다른 글
| [Programmers] Level.1 최소 직사각형(Java) (0) | 2023.10.22 |
|---|---|
| [Programmers] Level.1 없는 숫자 더하기(Java) (0) | 2023.10.21 |
| [Programmers] Level.1 크기가 작은 부분 문자열(Java) (2) | 2023.10.19 |
| [Programmers] Level1. 둘만의 암호(Java) (2) | 2023.10.15 |
| [Programmers] Level.1 문자열 나누기(Java) (0) | 2023.10.15 |