본문 바로가기
Algorithm/구현

[Python3] 백준 1713번 후보 추천하기

by HANNI하니 2023. 4. 19.

사용 언어 - Python3

문제 - 후보 추천하기

 

1713번: 후보 추천하기

첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대

www.acmicpc.net

 

정답

list 인덱싱 구현 (정답 맞춘 여부 X)

사진틀과 사진틀 개수를 저장할 list를 만든다.

n = int(input()) #사진들 개수
c = int(input()) # 전체 학생의 총 추천 횟수
vote = list(map(int,input().split())) # 추천받은 학생을 나타내는 번호

pic = [] # 사진틀
num_pic = [] # 사진틀 추천개수

for v in vote:
    if v in pic: # 이미 다른 학생의 추천을 받은 경우 횟수만 증가
        idx = pic.index(v)
        num_pic[idx] += 1
    else:
        if len(pic) >= n: # 비어있는 사진틀이 없는 경우
            idx = num_pic.index(min(num_pic))
            del pic[idx]
            del num_pic[idx]
        pic.append(v)
        num_pic.append(1)

pic.sort()
print(' '.join(map(str,pic)))

 

 

 


레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글