백준 5597번:과제 안 내신 분..?:파이썬

태훈입니다·2022년 11월 29일
0

코테 풀이

목록 보기
15/34

정답 코드:

a = [int(x) for x in range(1,31)]
b = [int(input())for i in range(28)]

c =list(set(a)-set(b))
print(min(c),max(c),sep='\n')

코드 풀이:

   조금 조잡한 코드가 나왔는데, 맞춰서 기분은 좋다..
   1.1~30까지 학생 번호가 들어있는 리스트 a를 만든다
   2.과제 제출한 학생 28명의 번호를 입력 할 리스트 b를 만든다
   3.제출하지 않은 학생은 a,b 리스트의 차집합을 구하면 되기에
   set(a),(b)의 차집합을 c 리스트에 넣고,
   최소값,최댓값을 구분자 \n로 출력하면 된다.!
   

좋은 코드 공부!

x=list(map(int,range(1,31)))
for i in range(28):
    x.remove(int(input()))
for j in x:
    print(j)

풀이:

remove함수를 이용해서 더욱 깔끔하게 코드를 짰다.
list(map(int,input,range()) 문법도 배웠다!
그 뒤 for문으로 x.remove(int(input())으로
x배열에 입력값들을 빼주고,
x배열을 차례대로 출력하면 정답이 되는 간편한 코드!
처음 내가 풀었던 코드랑 메모리, 시간은 동일하지만
가독성이나 간결함은 훨씬 좋고, remove 함수를 쓴 게 
멋있어서 채택했다.
profile
개발 공부를 하고 있는 비전공자입니다!

0개의 댓글