[파이썬/python] 백준 5597번 : 과제 안 내신 분..? (🥉5) (feat.remove())

https://www.acmicpc.net/problem/5597

 

5597번: 과제 안 내신 분..?

X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,

www.acmicpc.net

 

풀이

a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
b = []

for i in range(28):
    num = int(input())
    b.append(num)
ans=list(set(a)-set(b))
ans.sort()

print(ans[0])
print(ans[1])

오랜만에 풀어서 그런지 다소 무식한 풀이 방법을 쓴 것 같다..

위의 풀이를 좀더 깔끔하게 바꿔보면,

 

a=[i for i in range(1,31)]

for j in range(28):
    a.remove(int(input()))
    
a.sort()

print(a[0])
print(a[1])

이렇게 쓸 수 있을 것 같다.

일일이 b라는 리스트를 또 만들어 append를 이용해 추가하고,

다시 a에 b를 빼는 번거로운 방법 말고 remove를 이용하면 간단하게 풀 수 있었다.

 

a.sort()

print(a[0])
print(a[1])

 

도 min과 max를 이용하면 굳이  sort를 이용하여 정렬을 해주지 않아도 될 것이다.

comment