파이썬/예제

백준 5597번 과제 안 내신 분...? - 역시나 리스트

thpop 2025. 5. 19. 15:36
반응형

백준 5597번 / 과제 안 내신 분...? : https://www.acmicpc.net/problem/5597

 

이번 문제는 X대학 M교수님의 프로그래밍 수업을 듣는 30명의 학생 중, 특별 과제를 제출한 28명의 출석번호가 주어졌을 때, 과제를 제출하지 않은 나머지 두 학생의 출석번호를 찾아내는 코드를 만드는 것이다. 출석번호는 1번부터 30번까지 있으며, 결과는 두 학생의 출석번호를 작은 번호부터 한 줄에 하나씩 출력해야 한다.

 

문제를 푸는 아이디어의 발상은 간단하다. 1~30이 담긴 리스트를 만들고, 입력받은 출석 번호들을 지워나가면 두 개만 남는 것을 이용한다.

 

문제를 푸는 흐름은 다음과 같다.

 

  • 1부터 30까지의 숫자가 모두 포함된 리스트를 생성한다.
  • 28번 반복하면서 과제를 제출한 학생의 출석번호를 입력받는다.
  • 입력받은 출석번호를 전체 학생 명단 리스트에서 제거한다.
  • 28명의 번호를 모두 제거하고 나면 리스트에는 두 개의 번호만 남게 된다. 이 두 번호가 과제를 제출하지 않은 학생들의 번호이다.
  • 남은 두 번호 중 작은 번호를 먼저 출력하고, 큰 번호를 그 다음 줄에 출력한다.

내가 만든 코드는 다음과 같다.

list1 = []
for i in range(1,31):
    list1.append(i)
for j in range(28):
    a = int(input())
    list1.remove(a)

max = max(list1)
min = min(list1)

print(min)
print(max)

 

 

출력 결과는 다음과 같다.

반응형