💡문제접근1
- 리스트를 사용해서 뒤에 중복되는 학번이 존재하면 앞에 있는 학번을 제거하는 방식으로 접근했지만 시간초과가 발생했다.
💡코드1
import sys
input = sys.stdin.readline
K, L = map(int, input().split())
student_ID = []
li = []
for _ in range(L):
student_ID.append(int(input()))
for i in range(L):
if student_ID[i] in student_ID[i+1:]:
continue
else:
li.append(student_ID[i])
for i in range(K):
print(li[i])
💡문제접근2
- 딕셔너리를 사용했다. 만약 앞에 입력했던 학번이 뒤에 존재한다면 앞에 있는 학번의 번호를 뒤에 있는 학번의 번호로 갱신한다. 그 다음 딕셔너리를
value
값을 기준으로 오름차순 정렬한다.
💡코드2
import sys
K, L = map(int, sys.stdin.readline().strip().split())
dict = {}
for i in range(L):
student_ID = sys.stdin.readline().strip()
dict[student_ID] = i
dict = sorted(dict.items(), key = lambda x : x[1])
cnt = 0
for i in dict:
if cnt == K:
break
print(i[0])
cnt += 1
💡소요시간 : 20m