[백준/파이썬] 10599번 풀이

업데이트:



문제 정보


풀이

문제

마야는 페르시아의 왕들에 대해 관심이 있다. 그녀는 최근 자신이 좋아하는 왕들의 나이가 궁금해졌고, 검색을 해서 정보를 얻기 시작했다.

하지만 불행하게도 대부분의 경우 정확한 왕의 출생일과 사망일을 얻지 못했고, 대신 출생, 사망했을거라 추정되는 때의 범위를 얻었다. 예를 들면 키루스 2세는 600BC에서 575BC사이에 출생했고, 530BC에 사망했다. 따라서 키루스 2세는 최소 45살에서 최대 70살의 인생을 살았다.

마야는 자신이 좋아하는 왕들에 대해 출생과 사망의 범위가 적힌 리스트를 길게 만들었다. 하지만 이 길이가 너무 길기때문에 우리가 왕들 나이의 최소와 최댓값을 대신 구해주자.

만약 왕이 x년도에 태어나고 y년도에 죽었다면 그는 y - x살을 산 것이다.

입력 요약
테스트 케이스는 여러줄에 걸쳐 입력된다. 각 테스트 케이스는 4개의 정수 a, b, c, d (-5000 ≤ a ≤ b ≤ c ≤ d ≤ 2000)로 이뤄진다. [a, b]는 출생일의 범위, [c, d]는 사망일의 범위이다. a, b, c, d의 입력이 모두 0일 경우 프로그램을 종료한다.

출력 요약
각 테스트 케이스마다 최소나이와 최대나이를 공백으로 나눠 출력한다.

코드

import sys;read=sys.stdin.readline
while True:
    a,b,c,d=map(int,read().split())
    if a==b==c==d==0:break
    print(c-b,d-a)

설명

핵심은 구현 관점에서 마야는 페르시아의 왕들에 대해 관심이 있다. 그녀는 최근 자신이 좋아하는 왕들의 나이가 궁금해졌고, 검색을 해서 정보를 얻기 시작했다. …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



이런 주제는 어떠신가요?

비슷한 난이도와 유형의 문제를 이어서 보면 풀이 감각을 더 빠르게 잡기 좋습니다.

댓글남기기