반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12901
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
- 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일같은 날짜는 주어지지 않습니다)
입출력 예제

설계과정
1. 입력받은 월까지 해당하는 전체 일 수를 구한다.
2. 전체 일 수를 7로 나눠서 그에 맞는 요일을 출력한다.
풀이과정
1. 요일과 각 월에 해당하는 전체 일 수를 각각 배열로 저장한다.
- 요일 : FRI, SAT, SUN .. 등을 string으로 배열에 저장한다.
- 일 : 31, 29, 30 ... 등 각 월에 해당하는 전체 일자를 int 배에 저장한다.
2. for문을 통해서 입력받은 월의 바로 전까지에 해당하는 전체 일자를 합산한다.
- 배열에 순차적으로 각 월에 해당하는 일자를 저장해놓았기에 가능하다.
3. 그 후에 입력받은 일자를 더해서 총 일자를 구한다.
- 인덱스는 0부터지만 일자는 1부터 시작하므로 입력받은 일자에서 1을 빼야 정상 결과가 출력된다.
4. 합산 일자를 7로 나눈 나머지를 배열의 인덱스로 잡아서 결과를 출력한다.
- 요일을 출력하는 배열의 크기가 7이므로 그로 나눠서 인덱스에 맞는 요일을 출력한다.
답안소스
- 프로그래머스
class Solution { public String solution(int a, int b) { String answer = ""; String[] week = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int[] date = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int sumDate = 0; for(int i = 0; i < a-1; i++) { sumDate += date[i]; } sumDate += b - 1; answer = week[sumDate % 7]; return answer; } }
- 이클립스
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); String answer = ""; String[] week = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int[] date = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int month = Integer.parseInt(st.nextToken()); int day = Integer.parseInt(st.nextToken()); int sumDate= 0; for(int i=0; i<month-1; i++) { sumDate += date[i]; } sumDate += day - 1; answer = week[sumDate % 7]; System.out.println(answer); } }
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]Lv.1 약수의 합 (0) | 2023.03.27 |
---|---|
[프로그래머스]Lv.1 가운데 글자 가져오기 (0) | 2023.03.16 |
[프로그래머스]Lv.1 폰켓몬 (0) | 2023.03.10 |
[프로그래머스]Lv.1 없는 숫자 더하기 (0) | 2022.11.24 |
[프로그래머스]Lv.1 과일 장수 (0) | 2022.11.23 |