본문 바로가기

Python

Python - 입력값 받기

코딩테스트 환경에 다시 익숙해지고자 기본 입출력 문제를 반복했다.

[입출력] boj 11718, 11719 - EOF 판단

 

array vs list

파이썬에서는 리스트가 곧 배열이다.

 

input()은 한 줄을 str 형태로 받는다. 줄바꿈이 포함된 입력을 넣어도 첫 줄만 받아감.

 

코테에서는 시간 단축을 위해 input 대신 sys.stdin.readline을 많이 쓴다. 줄바꿈까지 받기 때문에 strip이나 map split으로 제거하고 사용함.

import sys

sys.stdin.readline()

 

sys.stdin.readline으로 여러줄 입력 받기

import sys

num = int(input())
arr = [sys.stdin.readline() for i in range(num)]
print(arr)

sys.stdin.readline + for문으로 여러줄 입력 받기

 

여러줄 입력받아 사용하는 다른 방법. 임의의 여러줄을 입력받아야 되는 문제에서 유용.

아래 샘플코드에서는 line에 줄바꿈이 포함되고 print로 줄바꿈이 또 들어가는 데 유의.

for line in sys.stdin:
    print(line)

 

readlines()는 input 전체를 \n을 포함한 리스트로 읽는다.

 

map을 사용할 때는 (타입, 넣을 것) 형태. list도 넣을 수 있어서 list 형변환에서도 유용. map 쓰고 다시 list 씌우면 됨.

# 한 줄로 받은 두개의 값을 각각 변수에 할당할 때
a, b = map(int, sys.stdin.readline().split(' '))

# 한 줄로 받은 여러 값을 하나의 배열로 만들 때
arr = list(map(int, sys.stdin.readline().split(' ')))

# 복수의 묶음을 여러줄로 입력받고 tuple들로 이루어진 배열을 만들 때
for line in sys.stdin:
    lst.append(tuple(map(int, line.split(' '))))

 

케이스 개수 받아서 그만큼 for문 돌기 (boj 10950)

t = int(input())

for i in range(t):
    a, b = map(int, input().split(' '))
    print(a + b)

 

문자열 길이 구하기 len(str)

 

str slicing 활용하기 (boj 11721)

str slicing 끝값을 문자열의 길이보다 길게 줘도 out of bound 에러가 나지 않고 알아서 문자열의 끝값까지만 내놓는다.

out of range slice indexes are handled gracefully when used for slicing: 참고 링크

 

print(a, '\n', b) 이런 식은 쉼표 앞뒤로 space 들어감

print('%d\n%d'%(var1, var2)) 이렇게 formatter 쓰거나 f-string으로 써야 space 안 들어감

f-string 활용 참고 링크

 

요일 구하기 (boj 1924)

datetime.date(year, month, day).weekday()는 0(월요일)부터 6(일요일)까지 return. 공식 문서

이 return값을 바로 index로 사용하는 방식으로 응용 가능. 참고 링크

import sys
from datetime import date

x, y = map(int, sys.stdin.readline().split(' '))
dayArr = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
date = dayArr[date(2007, x, y).weekday()]
print(date)

'Python' 카테고리의 다른 글

Python - Tuple  (0) 2021.01.15
Python - List  (0) 2021.01.14
Python - Function Parameters  (0) 2021.01.14
Python - String Formatting  (0) 2021.01.14
Python - 변수와 기초 연산  (0) 2021.01.13