Algorithm/Java

프로그래머스 - 2016년 java

고고마코드 2022. 7. 3. 01:27
반응형
12901번

https://programmers.co.kr/learn/courses/30/lessons/12901?language=java 

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까

programmers.co.kr


풀이

✔️ 윤년이란 2월이 29일까지 있는 날입니다.

 

  • 풀이1
public String solution2(int a, int b) {
	String[] days = { "THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED" };
	int[] numberOfDays = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
	
	int numberOfDaysSum = 0;
	for(int i=0; i<a-1; i++) {
		numberOfDaysSum += numberOfDays[i];
	}
	numberOfDaysSum += b;
	
	return days[numberOfDaysSum % 7];
}

✅ days

: 2016년 1월 1일은 금요일인데, 이것도 하루 지났다고 쳐야 합니다. 그래서 0번째 인덱스는 목요일인 "THU"

 

4월 25일로 가정하면

1월(31), 2월(29), 3월(31), 4월(30) 해당 일을 모두 더하고

25일을 추가로 더합니다.

 

이후 일주일은 7일이므로 7로 나눈 나머지는 요일이 됩니다.

 

✔️ 테스틐 케이스 처리속도: 0.02ms

반응형