Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- ai tech
- 모두의연구소
- 부스터
- 부캠
- 팀 활동
- 백준
- Jay TV
- 라이브
- 의외로 진지한 상담소
- 사탕 게임
- 슈잉
- boostcourse
- 모두를 위한 파이썬(PY4E)를 통해 학습한 개념
- 14499
- 슈퍼잉글리쉬
- py4e
- 너의 만화 선생님
- super-english
- 문자열 집합
- 모두를위한파이썬
- 3085
- 파이썬
- 14425
- 부스트코스코칭스터디
- booster
- 기본회화
- 부스트코스
- 15683
- 부스트캠프
- BOJ
Archives
- Today
- Total
천 리 길도 한 걸음부터
[python] BOJ 1476번: 날짜 계산 (220103) 본문
1476번: 날짜 계산
준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타
www.acmicpc.net
| 결과 | 틀렸습니다 |
| 소요 시간 | 45분 |
| 언어 | Python 3 |
분명 쉬운 문제같은데 생각처럼 풀리지 않았다.
아래 코드마저도 [알고리즘 분류 > 중국인의 나머지 정리]에서 힌트를 얻어 작성했다.
s의 값이 가장 크기 때문에 이를 활용하면 어떨까에서 시작했지만 틀렸다고 나와서 질문 검색으로 확인해 본 결과 e, s, m의 값이 하나라도 15, 28, 19인 경우 처리할 수 없는 코드였고 예외처리를 하는 것은 비효율적이겠다고 생각해 멈췄다.
과거부터 생각해보면 변수를 하나 생성하면 쉽게 풀릴 문제임에도 잘 활용하지 않는데 이 습관을 고쳐야겠다.
# e, s, m = map(int, input().split())
# while s <= 7980:
# if s%15 == e and s%19 == m:
# print(s)
# break
# elif e*s*m == 7980:
# print(7980)
# break
# s += 28
| 결과 | 맞았습니다!! |
| 소요 시간 | 20분 |
| 언어 | Python 3 |
질문 검색으로 다른 언어로 힌트를 보았다.
년도에서 입력받은 지구, 태양, 달을 빼서 최대 범위로 나눈 나머지가 0이 될 경우인 것을 눈치채서 작성할 수 있었다.
왜 이렇게 풀어야 하는지는 지금은 이해했지만 몇 주 뒤에 다시 풀어봐야겠다.
e, s, m = map(int, input().split())
year = 1
while True:
if (year-e)%15 == 0 and (year-s)%28 == 0 and (year-m)%19 == 0:
print(year)
break
year += 1
며칠 전 for문 사용하는 단순 구현 문제도 거의 1시간 50분 소요되었는데 문제를 쉬었더니 감을 잃은 것 같다.
'👩💻 STUDY > 알고리즘' 카테고리의 다른 글
| [python] BOJ 14425번: 문자열 집합 (220108) (0) | 2022.01.08 |
|---|---|
| (다시 풀기) [python] BOJ 14499번: 날짜 계산 (220106) (0) | 2022.01.06 |
| [python] BOJ 3085번: 사탕 게임 (220104) (0) | 2022.01.04 |