728x90
이걸 어떻게 풀지...고민을 많이 했다.
dict? defaultdict?
하다가 점수와 시간을 같이 dict에 넣어서 정렬해서 하려면 머리가 복잡해서
이게 맞나 찾아봤는데 그냥 list 2개를 쓰면 되는거였다.
picture 리스트와 score 리스트를 index로 연결하여
이미 사진틀에 있다면 해당 인덱스의 score를 1증가시킨다.
만약 없다면
- 자리가 없다면 -> picture에서 하나 빼고, score에서 하나 빼고
- 자리가 있다면 -> picture에서 하나 추가하고, score에서 하나 추가한다.
코드 :
if __name__=="__main__" :
n = int(input())
vote = int(input())
student = list(map(int,input().split()))
picture = []
score = []
# picture과 score이 index로 연동
for i in range(vote) :
# i 번째 사람이 투표
# 이미 사진틀에 있음
if student[i] in picture :
# 사진틀을 돌면서
for j in range(len(picture)) :
if student[i] == picture[j] :
score[j] +=1
# 사진틀에 없음
else :
# 들어갈 자리가 없다면 자리를 만들어
if len(picture)>=n :
for j in range(n) :
if score[j] == min(score) :
del picture[j]
del score[j]
break
picture.append(student[i])
score.append(1)
picture.sort()
print(*picture)
참고 블로그 :
반응형
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[Python/BOJ] 백준 2615 오목_구현 (0) | 2022.09.26 |
---|---|
[Python/BOJ] 백준 1106 호텔_DP (1) | 2022.09.19 |
[Python/BOJ] 백준 23325 마법천자문_DP (0) | 2022.09.02 |
[삼성SW역량][Python/BOJ] 백준 20057 마법사 상어와 토네이도_(구현) (0) | 2022.08.31 |
[Python/백준]ABCDE(DFS) (0) | 2022.08.31 |