코딩테스트/백준
[백준] 11509 - 풍선 맞추기
rlatotquf45
2024. 9. 16. 16:13
728x90
반응형
입력되는 정수 N이 1,000,000 이므로, O(N) 시간에 풀 수 있는 방법을 찾아야 함. { 파이썬은 1초에 2천만 정도의 instruction 처리 가능}
문제 풀이 아이디어
-
높이에 따라 풍선 처리
-
매 순간, 풍선을 터트릴 수 있는 높이의 화살이 있는지 확인
-
있다면 해당 위치의 화살의 높이를 한 칸 낮춤
-
없다면 화살을 해당 높이에 추가.
-
손으로 한 풀이
정답 코드
더보기
import sys
n = int(sys.stdin.readline().rstrip())
ballons = list(map(int, sys.stdin.readline().split()))
arrows = [0] * (1_000_000 + 1)
for i in range(n):
if arrows[ballons[i]]>0:
arrows[ballons[i]] -= 1
arrows[ballons[i]-1] += 1
else:
arrows[ballons[i]-1]+=1
print(sum(arrows))
728x90
반응형