Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 백준
- 백준 10866 자바
- 자바 28278
- 2798 자바
- 2346 풍선 터뜨리기
- IAM Identity Center
- 백준 1764 자바
- BFS
- 백준 28278 자바
- 2748 자바
- 10810 자바
- 백준 2346 자바
- 파이썬
- 10813 자바
- 자바 2346
- IAM 사용자
- 1010 자바
- 자바
- 자바 2164
- 1764 자바
- 자바 10866
- 데보션영 3기
- 28278 스택 2
- 코딩테스트
- 10807 자바
- 2164 자바
- 자바 1003
- 그리디
- dfs
- 티움투어
Archives
- Today
- Total
자두의 데브로그
[코테 스터디] sys.stdin.readline()으로 입력 받기 본문
매번 습관적으로 input() 대신 sys.stdin.readline()으로 입력을 받아왔는데 스터디를 하면서 input() 대신 sys.stdin.readline()을 사용하는 이유에 대한 질문이 들어와 정확히 내 머리에도 넣기 위해서 찾아보고 기록해두도록 하겠다.
하나의 입력을 받는 상황에서는 input()으로 입력을 받아도 괜찮지만 반복문으로 여러 줄을 입력 받아야 하는 상황이라면 sys.stdin.readline()으로 입력 받아야 시간 초과가 발생하지 않는다고 한다.
사용 방법은 아래와 같다.
import sys
n = sys.stdin.readline()
정수로 입력을 받아 사용하기 위해서는 위의 입력 받는 식에 int()함수를 사용한다.
import sys
n = int(sys.stdin.readline())
여러 변수에 정수를 한 번에 입력 받으려고 할 때에는 아래와 같이 map() 함수를 함께 사용한다.
import sys
n, m = map(int, sys.stdin.readline().split())
정수를 한 줄에 입력 받고 이를 리스트에 저장하려고 할 때에는 아래와 같이 list() 함수와 map() 함수를 함께 사용한다.
import sys
array = list(map(int, sys.stdin.readline().split()))
정수를 입력 받아 2차원 리스트에 저장할 때에는 for문을 통해 한 행에 들어가는 열의 개수만큼 정수를 입력한다. 배열 안에 배열이 들어갈 수 있으므로 2차원 리스트가 되고, 이렇게 입력을 받게 되면 길이가 같거나 다른 리스트를 모두 저장할 수 있게 된다.
import sys
n = int(sys.stdin.readline())
array = list()
for i in range(n):
array.append(list(map(int, sys.stdin.readline().split())))
문자열 n줄을 입력 받아 리스트에 저장할 때에는 아래의 코드와 같이 작성한다.
import sys
n = int(sys.stdin.readline())
array = [sys.stdin.readline().strip() for i in range(n)]
# 입력
# 3
# abcd
# efgh
# ijkl
# 출력
# ['abcd', 'efgh', 'ijkl']
참고
'코딩테스트 > 스터디' 카테고리의 다른 글
[자바] 프로그래머스 최댓값과 최솟값 (0) | 2024.10.05 |
---|---|
[코테 스터디] 리스트의 모든 원소에서 같은 값 빼기 (0) | 2024.03.23 |
[코테 스터디] Week4 이진 탐색 개념 정리 (1) | 2024.03.23 |
[코테 스터디] Week3 정렬 개념 정리 (0) | 2024.03.23 |
[코테 스터디] Week2 DFS & BFS 개념 정리 (4) | 2024.03.14 |