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
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 28325 - 호숫가의 개미 (1) | 2024.10.12 |
---|---|
[백준] 14569 - 시간표 짜기 (5) | 2024.10.09 |
[백준] 1477 - 휴게소 세우기 (0) | 2024.10.07 |
[백준] 17179 - 케이크 자르기 (1) | 2024.10.06 |
[백준] 20928 걷는 건 귀찮아 (2) | 2024.09.16 |