https://www.acmicpc.net/problem/20937
문제코드
import sys
input = sys.stdin.readline
import heapq
n=int(input())
arr=list(map(int, input().split()))
y=min(arr)
heapq.heapify(arr)
tower=1
num=0
while arr:
x=heapq.heappop(arr)
if x==y: num+=1
else:
y=x
if num>tower: tower=num
num=1
if num>tower: tower=num
print(tower)
문제풀이
힙큐쓰는게 편할것같아서 사용
입력받기 다 해주고 작은 순으로 큐에서 빠져나옴. 그 값을 x에 저장. 이게 미리 저장된 y와 같다=같은 숫자 또 나왔다. ->num으로 개수 표현해줌. 만약 탑 수가 num보다 적으면 새로 쌓아야 함. 왜냐면 자기보다 작거나 같은애 깔고앉을 수 없으니까. 이런 식으로 전부 돌고 출력.
맨 마지막 숫자를 탑에 적용 못 시키고 반복 다 돌수도있으니 if문 작성해줌.
'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Java] 19941 햄버거 분배 (1) | 2023.09.03 |
---|---|
[백준/Python] 1461번 : 도서관 (0) | 2023.09.03 |
[백준 / C++] 2872번 우리집엔 도서관이 있어 (0) | 2023.09.03 |
[C++] 백준 11256번: 사탕 (0) | 2023.09.03 |
[백준/C++] 19941번: 햄버거 분배 (0) | 2023.09.03 |