기본 입출력
모든 프로그램은 약속된 입출력 양식을 가진다.
프로그램 동작의 첫 번째 단계는 데이터를 입력 받거나 생성하는 것
예) 학생의 성적 데이터가 주어지고 이를 내림차순으로 정렬한 결과를 출력하는 프로그램
자주 사용되는 표준 입력 방법
- input() : 한 줄의 문자열을 입력 받는 함수
- map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용
n = input() # input은 문자열 입력받은 대로 출력함. 그것을 map()이나 split() 등으로 정수형이나 실수형 등 필요한 원소로 변환하는 것임
n = int(input()) # input 받은 값을 정수형으로 n 변수에 삽입
# 예시) 공백을 기준으로 구분된 데이터를 입력 받을 때
data = list(map(int, input().split()))
data.sort(reverse=True) # 내림차순 정렬
# 예시) 공백을 기준으로 구분된 데이터의 개수가 많지 않다면
a,b,c = input().split() # 단순히 공백을 기준으로 구분된 데이터를 a,b,c 변수에 문자열로 받을 때
a,b,c = map(int, input().split()) # list가 빠지고 a, b, c 각 변수에 int로 변환된 값이 들어감 a,b,c 3가지 보다 많으면 에러발생
# 예시 한 글자씩 자르기
Num = int(input())
listn = list(map(int, str(input())))
print(sum(lstNum))
# console ->
# 5
# 12345
# ->15 출력
빠르게 입력 받기
- 사용자로부터 입력을 최대한 빠르게 받아야 하는 경우 sys 라이브러리에 정의 되어있는 sys.stdin.readline() 메서드를 이용한다.
- 단, 입력 후 엔터(enter)가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 함께 사용한다.
- 입력의 개수가 매우 많은 문제에 대해서는 입력을 받는 것 만으로도 시간 초과가 될 수 있으므로 해당 메서드를 이용하여 해결한다.
- 이진탐색, 정렬, 그래프 관련 문제에서 자주 사용됨
import sys
data = sys.stdin.readline().rstrip()
print(data)
import sys
a = sys.stdin.read().split('\n')
print('%d\n%d\n%d'%(a+b,a-b,a*b))
표준 출력 방법 print()
- 각 변수를 콤마(,)를 이용하여 띄어쓰기로 구분하여 출력할 수 있다.
- print()는 기본적으로 출력 이후에 줄 바꿈을 수행한다.
- 줄바꿈을 원치 않을 경우 end 속성으로 바꿀 수 있다.
a = 1
b = 2
print(a, b) # 1 2 출력
print(7, end=" ") # 7 출력
print(8, end=" ") # 7 8 출력
print(9,2,sep='A') # 9A2 출력
# 여러줄 출력 (쌍따옴표 3개 혹 따옴표 3개)
print(""" 8888888888 888 88888
88 88 88 88 88 88
88 88 88 88 88 88888888""")
answer = 7
print("정답은 " + str(answer) + "입니다.") # 7 8 정답은 7입니다. 출력
# 파이썬에서 문자열과 정수형에 대한직접적인 더하기(+) 연산이 안되므로 str()을 이용해 문자형으로 변경 후 연결한다.
- 다음과 같은 방법도 가능
import sys
sys.stdout.write(str(i) + '\n')
f-string
- 파이썬 3.6부터 사용가능하며, 문자열 앞에 접두사 f를 붙여 사용한다.
- 중괄호 안에 변수명을 기입하여 간단히 문자열과 정수를 함께 넣을 수 있음.
answer = 7
print(f"정답은 {answer}입니다.") # answer를 문자형으로 변경할 필요 없음
본 글은 나동빈 - 이코테 2021 강의 몰아보기를 토대로 작성한 정리입니다.
좋은 강의를 올려주신 나동빈님께 감사드립니다.
'코딩테스트' 카테고리의 다른 글
[파이썬] 최대공약수와 최소공배수 (0) | 2022.08.27 |
---|---|
[파이썬] 문자열 포맷팅 Formatting (0) | 2022.07.12 |
이코테 5강 리뷰 (사전, 집합 자료형) (0) | 2022.05.13 |
이코테 4강 리뷰 (문자열, 튜플 자료형) (0) | 2022.05.13 |