2016년
오늘은 "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 Solution {
public string solution(int a, int b) {
string answer = "";
return answer;
}
}
나의 풀이
using System;
public class Solution
{
public string solution(int a, int b)
{
string answer = "";
DateTime date = new DateTime(2016, a, b);
answer = date.DayOfWeek.ToString();
answer = answer.Substring(0, 3);
return answer.ToUpper();
}
}
코드 분석
int형 정수 a, b가 주어지며 코드가 시작됩니다. DateTime 타입으로 date를 만들어 줍니다. answer에 date.DayOfWeek를 통해 요일을 찾고 문자열로 변환합니다. 다시 answer에 기존 answer값을 Substring으로 0번째부터 3번째까지 잘라 넣어줍니다. 마지막으로 리턴할 때 ToUpper를 통해 대문자로 변환시켜줍니다.
풀이 설명
이번 문제는 윤년과 날짜에 대한 문제입니다. 하지만, 제가 사용한 풀이방법은 C#에 있는 DateTime 구조체를 사용하여 날짜를 구성하고, DateTime 메서드인 DayOfWeek로 날짜에 대한 요일을 쉽게 구했습니다. 그리고 문제에서 원하는 답의 형태로 변형해서 리턴해주기만 하면 끝이 납니다.
<NEXT>
오늘은 "2016년" 문제를 풀어보았습니다. 다음에는 "카드 뭉치" 문제를 다뤄볼 것입니다. 해당 문제는 이유는 모르겠지만 완료한 사람의 수가 1만명이 안됩니다. 감사합니다.
'프로그래머스 코딩테스트 문제 > Level 1' 카테고리의 다른 글
[프로그래머스] - 과일 장수(C#) (0) | 2023.09.05 |
---|---|
[프로그래머스] - 카드 뭉치(C#) (0) | 2023.09.03 |
[프로그래머스] - 명예의 전당(1)(C#) (0) | 2023.09.01 |
[프로그래머스] - 콜라 문제(C#) (0) | 2023.08.31 |
[프로그래머스] - 푸드 파이트 대회(C#) (0) | 2023.08.29 |