[프로그래머스/C++] Level1 - 2016년 풀이

2025. 12. 7. 18:54·PS/Programmers

0. 문제

 

1. 풀이

#include <bits/stdc++.h>
using namespace std;

string solution(int a, int b) {
    string answer = "";
    unordered_map<int, int> monthDay = {
        {1, 31},{2, 29},{3, 31},{4, 30},{5, 31},{6, 30},{7, 31},{8, 31},
        {9, 30},{10, 31},{11, 30},{12, 31}
    };
    string str[7]={"FRI","SAT","SUN","MON","TUE","WED","THU"};
    int tmp=0;
    for (int i=1;i<a;++i){
        tmp+=monthDay[i];
    }
    tmp = (tmp+b-1)%7;
    answer = str[tmp];
    return answer;
}

 

 

딱 문제를 봤을 때, modular연산으로 찾아야겠다는 생각이 들었다.

그래서 직접 달력 날짜 그려서 한 번 해봤고, 잘 풀려서 그대로 코드로 구현했다.

​

우선 나의 경우는 월별 일자를 해시로 설정했다.

(그런데 다른 풀이 보니까 배열로 많이 구현하고 있었다. 월을 인덱스로 해서 배열로 하면 초기화는 훨씬 수월할 것 같다.)

그리고 요일을 배열로 했는데, 1월 1일이 금요일이라고 해서 시작 요일을 0번 인덱스로 잡았다.

​

주어진 값이 만약에 3월 14일이라면,

1월 1일부터 2월까지의 날짜를 모두 더하는 것이다. (31+29)

여기서 3월 14일이라는 날짜가 1월 1일부터 얼마나 떨어져 있나를 구한다. (31+29 -1)

그리고 나서 모듈러 연산을 해준다. 7로 나눈 나머지가 바로 요일의 인덱스가 되는 방식이다.!

저작자표시 비영리 변경금지 (새창열림)

'PS > Programmers' 카테고리의 다른 글

[SQL] SQL NULL값인 컬럼 처리하기 (IFNULL)  (0) 2026.01.07
[프로그래머스/C++] 가장 가까운 같은 글자 (lv1)  (0) 2025.10.21
[프로그래머스/C++] 알고리즘 고득점 키트 - 베스트앨범  (1) 2025.07.04
[프로그래머스/C++] 알고리즘 고득점 키트 - 체육복  (0) 2025.05.21
[프로그래머스/C++] 알고리즘 고득점 키트 - K 번째 수  (0) 2025.05.20
'PS/Programmers' 카테고리의 다른 글
  • [SQL] SQL NULL값인 컬럼 처리하기 (IFNULL)
  • [프로그래머스/C++] 가장 가까운 같은 글자 (lv1)
  • [프로그래머스/C++] 알고리즘 고득점 키트 - 베스트앨범
  • [프로그래머스/C++] 알고리즘 고득점 키트 - 체육복
Lyv
Lyv
  • Lyv
    inimizi
    Lyv
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 이것저것 도전 (5)
        • 공모전 (0)
        • 우테코 (5)
      • PS (16)
        • 삼성기출 (2)
        • LeetCode & Codility (4)
        • Programmers (6)
        • BaekJoon (4)
      • 공부기록 (33)
        • CS (16)
        • 영어 (1)
        • iOS (1)
        • 프로그래밍 언어 (0)
        • Web (4)
        • Linux (1)
        • Docker (2)
        • Network (4)
        • IaC (3)
      • 프로젝트 경험 (0)
      • DailyLog (4)
      • 취준Log (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    운영체제
    til
    프리코스회고
    IAC
    대학생
    c언어
    우테코
    네트워크
    PS
    문제풀이
    DP
    프로그래머스
    os
    컨테이너
    스케줄링
    공부기록
    리눅스
    정처기
    이미지
    코테
    FastAPI
    정처기실기
    디자인패턴
    ansible
    백준
    운영체제intro
    우테코프리코스
    C++
    manifest
    자동화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Lyv
[프로그래머스/C++] Level1 - 2016년 풀이
상단으로

티스토리툴바