백준 5597번 풀이

문제

과제 안 낸 사람 출석번호를 낮은 순서대로 두개 뽑으면 된다. (근데 어차피 비는거 두개임)

풀이

자 이것도 투트랙은 투트랙인데… 입력을 너무 정직하게 28줄 받는다… 이러면 귀찮음… 그래서 로직 테스트는 small scale로 줄여서 했다.

import sys

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

for i in range(28):
    N = int(sys.stdin.readline())
    gwaje_list.append(N)

gwaje_list.sort()

일단 배열 생성하고 입력받는 부분은 이렇다. 그리고 과제 안 낸 학생을 찾을건데 이걸 어떻게 찾냐… 보면 리스트가 두 개 있는데 우리가 입력받는 리스트는 과제 리스트(과제 제출한 사람)고, 위에 스튜던트 리스트는 전체 학생 리스트이다. 즉, 전체 학생 리스트에서 과제 리스트를 조회해서 없는 번호를 출력할거다.

그럼 순서가 낮은 순인데 그건 어떻게 하냐고? 그래서 정렬했음.

for i in student_list:
    if i in gwaje_list:
        continue
    else: 
        print(i)

학생 리스트의 요소가 과제 리스트에 없으면 그건 안 낸거다. (끄덕)