[백준/파이썬] 1183번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1183번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠졌다. 결국 기다리는 시간을 최소화 하기 위해 모든 약속 시간을 T씩 미루려고 한다. 기다리는 시간은 먼저 도착한 사람이 늦게 도착한 사람이 도착할 때까지 기다리는 시간을 의미한다.
| 마법사의 약속 시간은 A1, A2, …, AN이고, 도착 시간은 B1, B2, …, BN이다. 약속 시간을 T만큼 미루면, 기다리는 시간의 합은 | Ai + T - Bi | 의 합과 같다. 기다리는 시간의 합이 최소가 되는 서로 다른 정수 T의 개수를 구해보자. |
입력 요약
첫째 줄에 N이 주어진다. 다음 N개의 줄에 Ai, Bi가 주어진다.
출력 요약
첫째 줄에 기다리는 시간의 합이 최소인 서로 다른 정수 T의 개수를 출력한다.
코드
n=int(input())
d={}
for i in range(n):
s,a=map(int,input().split())
try:d[s-a]+=1
except:d[s-a]=1
print(d)
print(list(d.items()))
설명
핵심은 구현 관점에서 마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠졌다. …를 만족하도록 로직을 구성하는 것입니다.
코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.
경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.
댓글남기기