티스토리 뷰
2주차 day3 부터 알고리즘 문제 풀이로 넘어갔다.
프로그래머스 2016문제 에서 접근 방법을 몰라서
보다보다가 생각이 안나서 검색을 하고 주석을 달면서 이해했다.
문제 설명
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" |
풀이방법
자바에는 날짜에대한 함수가 있는 것으로 기억을 하는데 자세하게 쓴 기억이 없기때문에
풀이방향을 찾아보고 알고리즘을 완성하였다.
public class ex13 { // 2016 윤년
public static void main(String[] args) {
int a = 5;
int b = 24;
String answer = "";
//2016년의 12개월 각날짜 => 31,29,31......
int[] day = {31,29,31,30,31,30,31,31,30,31,30,31};
String[] date = {"SUN","MON","TUE","WED","THU","FRI","SAT"};
int total = 0;
// a가 5월이니까 4월까지 있는 날짜를 다 더해준다.
for (int i=0; i<a-1; i++){
total += day[i];
}
// b-1을 하는 이유는 1월1일 하루가 지난날이 아니기 때문이다.
total = total +b-1;
answer = date[total%7]; // 값을 요일수 7을 나눈 나머지를 리턴
System.out.println(answer);
}
}
'알고리즘' 카테고리의 다른 글
JAVA 프로그래머스 - 이상한 문자 만들기 (0) | 2023.02.19 |
---|---|
JAVA 프로그래머스 - 완주하지 못한 선수 (0) | 2023.02.19 |
JAVA 프로그래머스 - 문자열 다루기 기본 (0) | 2023.02.19 |
JAVA 프로그래머스 - 문자열 내 p와 y의 개수 (0) | 2023.02.19 |
JAVA 프로그래머스 - 나누어 떨어지는 숫자 배열 (0) | 2023.02.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Auto Scaling
- githubactions
- 위치의 중요성
- HTML
- aws
- 시작 템플릿
- 오토 스케일링
- Load Balancer
- script
- 로드 밸런서
- CICD
- JWT
- CodeDeploy
- 인스턴스
- EC2
- flask
- 로드밸런서
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함