-
백준_11509_풍선 맞추기(python)Algorithm/백준_생각정리 2023. 4. 10. 14:04
※ 접근
풍선의 갯수가 최대 백 만개였고 데이터를 정렬시킬 수도 없었기 때문에 그리디 알고리즘으로 풀어야겠다고 생각했다.
※ 풀이
1. defaultdict를 이용해서 해당 바늘이 key에 존재하지 않거나 value가 0이라면 결과값을 + 1을 해주고 해당 바늘 -1한 값을 key로 만들어줬다.
2. 해당 바늘이 있었다면 value -1을 해주고 해당 바늘 높이 -1한 값을 key로 만들어줬다.
from collections import defaultdict import sys input = sys.stdin.readline n = int(input()) data = list(map(int,input().split())) s = defaultdict(int) count = 0 for i in data: if i not in s or s[i] == 0: s[i-1] += 1 count += 1 else: s[i] -= 1 s[i-1] += 1 print(count)
※ 회고
처음에 사전형이 아닌 set()을 이용해서 풀었다. set을 이용할 시 중복된 높이에 대해서는 처리를 하지 못하기 때문에 결과값이 기댓값보다 증가됐다. set을 사용할 때는 중복값에 대해 주의하자!!!
'Algorithm > 백준_생각정리' 카테고리의 다른 글
백준_5545_최고의 피자(python) (0) 2023.04.19 백준_15961_회전 초밥(python) (0) 2023.04.14 백준_6198_옥상 정원 꾸미기(python) (0) 2023.04.07 백준_2116_주사위 쌓기(python) (0) 2023.04.06 백준_5972_택배 배송(python) (0) 2023.04.05