0. 문제
1. 문제 생각
1<=N<=20에 1<=추천횟수<=1000이라서
내가 생각했던 풀이인
for N + N정렬 + for M 을 동시에 해봤자 N*NlogN*M으로 1초 안에 통과한다.
그래서 그냥 바로 구현에 들어갔다!
2. 문제 구현
N=int(input())
M=int(input())
List=list(map(int,input().split()))
Picture=[[0,0,0] for _ in range(N)] #학생, 추천횟수
for i in range(M):
flag=False
for j in Picture:
if j[0]==List[i] :
j[1]+=1
flag=True
break
elif j[0]==0:
j[0]=List[i]; j[1]+=1; j[2]=i
flag=True
break
if not flag:
Picture=sorted(Picture, key = lambda x:[x[1], x[2]])
Picture[0][0]=List[i]
Picture[0][1]=1
Picture[0][2]=i
# print(Picture)
ans=[]
for i in Picture:
if i[0]>0:
ans.append(i[0])
ans=sorted(ans)
print(*ans)
3. 한번에 풀었는가? X
역시 정답률 31퍼센인 명성과 같게 히든케이스를 하나 놓칠 수 있다.
아래와 같이 사진틀보다 적은 최종후보가 선정되었을 때 0을 출력할 수 있는 실수가 있을 수 있다!
3
4
1 2 1 2
#답
1 2
#오답
0 1 2
'알고리즘 > 세부구현' 카테고리의 다른 글
[PS | 한 번에 맞자!] 백준 15971 (0) | 2023.07.17 |
---|---|
[PS | 한 번에 맞자!] 백준 4256 (0) | 2023.07.15 |
[PS | 한 번에 맞자!] 백준 2448 (0) | 2023.07.14 |
[PS | 한 번에 맞자!] 백준 16938 (0) | 2023.07.11 |
[PS | 한 번에 맞자!] 백준 1863 (0) | 2023.07.10 |