촉촉한초코칩
[백준] 5597 (과제 안 내신 분..?) Python 본문
문제
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.
교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.
입력
입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다.
출력
출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다.
변수
- student, task, no_task 리스트
알고리즘
- student 리스트에 1부터 30까지 숫자를 넣는다.
- 28번 task에 숫자를 입력받는다.
- 다시 for문을 28번 돌려서 task에 student 값이 있는지 확인한다.
- 있으면 넘어가고, 없으면 no_task에 해당하는 student 값을 넣어준다.
- 그리고 no_task에 sort 함수를 써서 오름차순으로 정렬시킨 후 출력한다.
student = []
task = []
no_task = []
for i in range(1,31):
student.append(i)
for i in range (0,28):
temp = int(input())
if task.count(temp) == 0:
task.append(temp)
for i in range(0,28):
if task.count(student[i]) == 0:
no_task.append(student[i])
else:
continue
no_task.sort()
for i in range(len(no_task)):
print(no_task[i])
왜 안될까..?
검색해봤다.
숫자를 입력받은 후 그 값을 student에서 지우고 남은 두개의 값을 출력하는 것 같다. (간단하네..)
student = []
for i in range(1,31):
student.append(i)
for i in range (0,28):
temp = int(input())
student.remove(temp)
print(min(student))
print(max(student))
안 되면 다른 방법도 다양하게 생각해본 후에 검색하면 될 듯
'Algorithm' 카테고리의 다른 글
[백준] 25314 (코딩은 체육과목 입니다) c언어 (0) | 2023.02.26 |
---|---|
[백준] 11382 (꼬마 정민) c언어 (0) | 2023.02.22 |
[백준] 10807 (개수 세기) c언어 (0) | 2023.01.03 |
[백준] 1081(합) c언어 - 미해결 (0) | 2023.01.03 |
[백준] 10989 (수 정렬하기3) c언어 (0) | 2022.09.21 |