알고리즘/프로그래머스 1단계

프로그래머스 - 2016 - C++

게임만드는학생 2024. 7. 17. 15:13

https://school.programmers.co.kr/learn/courses/30/lessons/12901#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

#include <string>
#include <vector>

using namespace std;

string solution(int a, int b) {
    string answer = "";

    int month[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };
    string d[7] = { "THU","FRI","SAT","SUN","MON","TUE","WED" };
    int days = 0;
    for (int i = 1; i < a; i++)
    {
        days += month[i];
    }
    days += b;
    
    
    return d[days % 7];
}

 

윤년 날짜가 주어지면 무슨요일인지 반환하는 문제이다.

 

총 일수를 계산한 후, 7로 나머지 계산을 한다. 

그리고 그에 맞는 요일을 반환하면 된다. 

이 떄, 문자열 배열 d 가 중요하다. 

1월 1일이 금요일이지만 1월1일일 때, 즉 d[1]이 "FRI"가 나오기 위해서 첫번째 인덱스는 목요일로 설정해야한다.