이번 문제는 쉽지만 조금 복잡할 수 있습니다.
일단 윤년에 대해서 알아야 하는데, 이 문제에서는 친절히도 윤년의 조건을 설명해줍니다.
1. 4의 배수이면서 100의 배수가 아닐 때
2. 400의 배수일 때
이렇게 총 2가지 경우 중 하나를 충족할 때가 윤년입니다. 이 조건을 모두 만족하지 못하는
경우는 윤년이 아니기에 else로 들어가면 됩니다. 따라서 if문의 조건만 나타낼 수 있다면
바로 풀 수 있는 간단한 문제입니다.
using System;
namespace unicoti {
class Program {
static void Main(string[] args) {
int input;
int.TryParse(Console.ReadLine(), out input);
if((input%4 == 0 && input%100 != 0) || input%400 == 0) {
Console.WriteLine("1");
} else {
Console.WriteLine("0");
}
}
}
}
먼저, 입력값을 input이라는 변수를 TryParse 구문을 통해서 안전하게 받아왔고,
(input%4 == 0 && input%100 != 0) 부분은 1번 조건을 코드로 나타낸 결과입니다.
% 기호는 나눈 후 나머지를 의미하기에 4의 배수는 4로 나누었을 때 나머지가 0으로 표현했고,
100의 배수가 아니여야 하는 부분은 !(부정연산자)를 통해서 처리해주었습니다.
이후 괄호로 이 조건을 묶은 다음 두번째 조건도 표시해주었습니다.
400의 배수일 조건. input%400 == 0을 통해 2번 조건도 표시했고
이 두 코드를 || (or) 을 통해서 둘 중 하나만 성립해도 되도록 구성했습니다.
한개의 if문만 썼기에 이후 else 문으로 나머지 경우를 축약해서
코드 구성을 완료했습니다.
오늘의 느낀점)
일단 이 문제에서 느낀 점은 딱히 없는 것 같습니다. 소괄호로 복잡한 논리 연산을
간단히 표현한 것과 윤년의 의미를 알게 된 정도의 수확이 있지 않아 싶습니다.
또한 한글자를 출력할때 숫자여서 char형을 사용해도 될지 망설였는데,
직접 실행해보니 숫자도 char형으로 만들 수 있다는 걸 확실히 알게 되었습니다.
물론 이런 정보들은 그때그때 알아도 상관없지만, 디테일이 올라간 것 같아 기분 좋습니다.
이상으로 도움이 되었길 바라며,
끝.
'코딩테스트 (C#)' 카테고리의 다른 글
백준 2884 : 알람 시계 - C# 풀이 (0) | 2024.08.15 |
---|---|
백준 14681 : 사분면 고르기 - C# 풀이 (0) | 2024.08.14 |
백준 9498 : 시험 성적 - C# 풀이 (0) | 2024.08.12 |
백준 1330 : 두 수 비교하기 - C# 풀이 (0) | 2024.08.02 |
백준 10172 : 개 - C# 풀이 (0) | 2024.08.01 |
댓글