https://www.acmicpc.net/problem/5597
문제 풀이
sort 내장함수 사용
- 30번까지 출석 list를 만들고, for문으로 과제 낸 번호 입력을 받은 후, 출석 list가 0인 것만 출력하는 방식으로 구현했습니다
- enumerate함수를 사용해 index와 value를 사용해 value값이 0인 것만 index_lst에 담았습니다
- 0번은 필요없으니 remove함수를 이용해 삭제했습니다
- index_lst에 남은 수를 sort로 정렬하여 출력했습니다
import sys
input = sys.stdin.readline
attendance = [0] * 31
for _ in range(28):
n = int(input())
attendance[n] = 1
index_lst = []
# enumerate사용시 index, value사용가능
index_lst = [i for i, value in enumerate(attendance) if value == 0]
index_lst.remove(0)
index_lst.sort()
for num in index_lst:
print(num)
sort없이 풀기
- sort과정 전까지는 위와 동일하게 진행했습니다
- index_lst에 있는 value가 2개밖에 없으므로 간단하게 비교함수를 이용해 max값과 min값을 정해주었습니다
import sys
input = sys.stdin.readline
attendance = [0] * 31
for _ in range(28):
n = int(input())
attendance[n] = 1
index_lst = []
# enumerate사용시 index, value사용가능
index_lst = [i for i, value in enumerate(attendance) if value == 0]
index_lst.remove(0)
# 이 위까지는 동일
if index_lst[0] > index_lst[1]:
max_num = index_lst[0]
min_num = index_lst[1]
else:
max_num = index_lst[1]
min_num = index_lst[0]
print(min_num)
print(max_num)