728x90
📌 문제
5597번: 과제 안 내신 분..?
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,
www.acmicpc.net
📌 내 코드
# 5597 과제 안 내신 분..?
import sys
input = sys.stdin.readline
nums = [int(input()) for _ in range(28)]
for i in range(1, 31):
if i not in nums:
print(i)
💡 풀이
- 28개의 출석번호를 각각 한 줄씩, 총 28줄로 입력 받도록 되어 있다.
- 리스트 안에서 입력 값을 정수형으로 선언하고, 하나의 정수를 28번 입력 받도록 한다.
- [int(input()) for _ in range(n)] : n개 줄의 정수 리스트
- 30명의 학생을 확인해야 하므로 for문의 range() 범위를 1, 31 으로 잡아준다.
- range(a, b) : a 이상 b 미만
- i 에 1~30 까지 넣고 반복하면서 i가 입력 받은 리스트 nums에 존재하지 않으면 해당 i를 출력한다.
📌 정리
여러 개의 값을 입력 받을 때 종종 사용하던 방법이긴 했는데, 한 줄에 여러 개의 값을 입력 받을 때의 리스트 형태는 생소했다. 참고한 블로그 링크를 아래에 두었으니 리스트 자료형 복습 시 다시 참고해야겠다.
1. 한 줄의 정수 리스트
👉🏻 한 줄에 공백으로 나누어진 ?개의 정수를 리스트로 만들어 줌
nums = [int(x) for x in input().split()]
2. n개 줄의 정수 리스트
👉🏻 첫 번째 줄에 n이 주어지면, 한 줄의 정수 하나 입력 받기를 n번 반복
n = int(input())
nums = [int(input()) for _ in range(n)]
적극적인 피드백은 언제나 환영입니다:)