알고리즘 코테 작성하다 보니, 입출력을 어떻게 하는지 자꾸 혼동이 와서 정리
입력의 기본은
input(): 입력값 한 줄을 읽어옴, 읽어온 값는 항상 문자열(string) 취급sys.stdin.readline():
- 개행문자를 포함해서 읽어옴
- Python 은 입출력이 다른 언어에 비해 느린 편, input() 함수의 다중 호출만으로도 많은 시간이 소요됨. 이를 sys.stdin.readline 를 사용해서 개선함.
- import 필요
import sys input = sys.stdin.readline n = input()
input()
# 입력값 예시
3
n = input()
# number == 3
# 항상 문자열 취급이라, 숫자 변환 int() 해주어야 함
list(map(int, input())
리스트로 받아서 쪼개서 쓰기
# 입력값 예시
12345
num_list = list(map(int, input())
# num_list == [1, 2, 3, 4, 5]
input().split('구분자')
# 입력값 예시1 - 숫자로 받기
3 10
# 입력값 예시2 - 문자열로 받기
hello,world
# 변수 하나씩 값을 받을 때 - 예시 1
# split() 구분자 안 넣으면 띄어쓰기가 기본적용 됨
x, y = map(int, input().split())
# x == 3, y == 10
# 리스트로 받아오는데, 숫자로 받아야 할 때
num_list = [map(int, input().split())]
# num_list == [3, 10]
# 문자열 리스트로 받아올 때
str_list = input().split(',')
# str_list == ['hello', 'world']
반복문을 사용하여 입력값을 받기
# 입력값 예시
2
5 10
3 20
# 변수에 하나씩 담기 - 하나씩 계산이 필요할 때
N = int(input())
for i in range(N):
A, B = map(int, input().split())
# A == 5, B ==10
# A == 3, B ==20
# 리스트에 담아서 활용하기 - 이렇게 되면 이중배열 이 된다.
num_list = []
for i in range(N):
A, B = map(int, input().split())
num_list.append([A,B])
# num_list == [[5, 10], [3, 20]]
주로 여기까지가 제일 많이 사용하고.. 그 밑으로는.. 알면 좋은 것!
while True:
try:
A, B = map(int, input().split())
print(A + B)
except:
break
# 마지막 행은 0이 두 개이다.
while True:
A, B = map(int, input().split())
if A == 0 and B == 0:
break
else:
print(A + B)
출력의 기본
print(a): a 의 값을 출력
# 예시
a = 3
b = 4
msg = "Hello, world!"
year = 2024
print(a) # 3
# 여러 개인 경우 공백으로 구분하여 출력
print(a, b) # 3 4
## 자료형이 달라도 같이 출력 가능
print(year, msg) # 2024 Hello, world!
print() 함수에 기본으로 한 줄 출력 후 줄바꿈이 있어서 줄바꿈 없이 하고 싶으면, end 옵션을 넣어 변경해준다.
end 옵션 (end="")
- 출력 완료 후의 내용을 넣어 줄 수 있음
- 기본 : 줄바꿈
- 주로 한 칸씩 띄워서 출력하거나, 줄바꿈을 없애거나 할 때 사용, 문자도 넣을 수 있음
# 예시
num_list = [1, 2, 3, 4, 5]
for i in num_list:
print(i, end=" ")
# 출력 _ 마지막 띄어쓰기 끝나고 %가 찍힐 수 있다.
# 1 2 3 4 5 %
sep 옵션 (sep="")
- 여러 개 출력할 때, 기본 공백으로 출력되는 부분을 변경 할 수 있음
- 기본 : 한 칸 띄어쓰기
# 예시
print('1-1','1-2','1-3') # 기본
print('1-1','1-2','1-3', sep='') #띄어쓰기 없애ㅐ서 나오게 하기
print('1-1','1-2','1-3', sep=',') #띄어쓰기 대신 콤마
# 출력
# 1-1 1-2 1-3
# 1-11-21-3
# 1-1,1-2,1-3
f-string 사용하여 문자열 + 변수명으로 쓸 수 있다.
string formatting : f-string 문자열 포매팅
- 파이썬의 템플릿 리터럴이라고 생각하면 된다.
- 출력 내용을 f'' 로 감싸준다.
- {} 중괄호 안에 변수명을 직접 넣어 함께 사용할 수 있다.
# 예시
s = 'coffee'
n = 5
print(f'저는 {s}를 좋아합니다. 하루 {n}잔 마셔요.')
# 출력
# 저는 coffee를 좋아합니다. 하루 5잔 마셔요.
참고 문서
[Python] 백준, 파이썬 입력받기 (feat.input, split, map)
파이썬의 print() 함수 제대로 활용하기
[python] 파이썬 f-string (문자열 포매팅 방법 3)