이 문제는 어떤 언어를 공부하던지 간에, 항상 나오는 것 같다.
분명 옛날 옛적, 한국에 코딩 교육이 들어온지 얼마 안됐을 때 만들어졌고
지금까지도 활용되는 문제인 것이 분명하다.
'제발 그만 좀 나와!' 가 아니고, 나와도 이제는 아무렇지 않게 풀 수 있을 수 있도록 문제를 완전히 풀어버리겠다.
Q. 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
조건) 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다.
1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다.
하지만, 2000년은 400의 배수이기 때문에 윤년이다.
입력) 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
*윤년 : 2월 29일이 존재하는 달
1. 코드 작성
input_year=int(input())
if (input_year%4==0 and input_year%100!=0 or input_year%400==0):
return 1
else :
return 0
계속 'return' outside function 오류가 난다.
으악 함수가 없는데 무슨 return이야... 조건문에서는 return을 쓰지 않아...
return은 함수에서만 사용 된다.
수정해보자.
input_year=int(input())
if (input_year%4==0 and input_year%100!=0) or (input_year%400==0):
print(1)
else :
print(0)
맞았다! 연산자를 사용할 때 괄호로 적절히 순서를 구분하는 것 잊지 말자.
바보 같은 실수와 함께 교훈도 얻었고,
코드도 짧게 잘썼다는 칭찬을 하게 된 문제.
2. python 에서의 나누기 관련 연산자
/ 기본 float형 나눗셈
// 몫
% 나머지
a, b = divmod(c, d) : 몫과 나머지를 튜플 형식으로 가지고 옴
'코딩테스트 준비 > Python' 카테고리의 다른 글
1676 python 팩토리얼 0의 개수 4가지 풀이법 (0) | 2023.08.16 |
---|---|
[백준/python] 11720번 : 숫자의 합 (0) | 2023.05.03 |
[백준/python] 2884번: 알람 시계 (0) | 2023.04.15 |
[백준/python] 14681 사분면 고르기 (1) | 2023.04.13 |
백준 9498 python : 시험성적 (0) | 2023.03.18 |