< list(map(int, input().split())) 동작과정>
1. input()으로 입력받은 문자열을 split()을 이용해 공백으로 나눈 리스트로 바꿈
2. map을 이용하여 해당 리스트의 모든 원소에 int() 함수를 적용
3. 최종적으로 그 결과를 list()로 다시 바꿈으로써 입력받은 문자열을 띄어쓰기로 구분하여 각각 숫자 자료형으로 저장하게 되는 것
-> 이 코드는 정말 많이 사용되므로, 반드시 외우고 있어야 한다. 많은 문제는 공백 혹은 줄바꿈을 기준으로 데이터를 구분한다
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백으로 구분하여 입력
data = list(map(int, input().split()))
data.sort(reverse = True)
print(data)
n, m, k = map(int, input().split())
print(n, m, k) // ex) 3 5 7
-> 파이썬에서는 입력의 개수가 많은 경우에는 단순히 input() 함수를 그대로 사용하지는 않는다. 파이썬의 기본 input() 함수는 동작 속도가 느려서 시간초과로 오답 판정을 받을 수 있다.
-> 이 경우 파이썬의 sys 라이브러리에 정의되어 있는 sys.stdin.readline() 함수를 이용
-> sys 라이브러리는 다음과 같은 방식으로 사용하여 input() 함수와 같이 한 줄씩 입력받기 위해 사용
readline() 사용 소스코드 예시
import sys
sys.stdin.readline().rstrip()
sys 라이브러리를 사용할 때는 한 줄 입력을 받고 나서 rstrip() 함수를 꼭 호출해야 한다.
readline()으로 입력하면 입력 후 엔터가 줄 바꿈 기호로 입력 되는데, 이 공백 문자를 제거하려면 rstrip()함수를 사용해야 한다. 이것또한 관행적으로 외워서 사용하자
출력시 오류가 발생하는 소스코드 예시
# 출력할 변수들
answer = 7
print("정답은" + answer + "입니다")
=> 에러 / 이유: 실행 결과를 보면 문자열 자료형끼리만 더하기 연산이 가능하다는 오류메세지
해결방법
1. str() 함수를 이용하여 출력하고자 하는 변수 데이터를 문자열로 바꾸어준다
2. 각 자료형을 콤마(,)를 기분으로 구분하여 출력
변수를 문자열로 바꾸어 출력하는 소스코드 예시
# 출력할 변수들
answer = 7
print("정답은 " + str(answer) + "입니다")
// 출력 : 정답은 7입니다
각 변수를 콤마로 구분하여 출력하는 소스코드 예시
# 출력할 변수들
answer = 7
print("정답은" , answer, "입니다.")
// 출력: 정답은 7 입니다.
=> 각 변수를 콤마로 구분하여 출력하는 경우, 변수의 값 사이에 의도치 않은 공백이 삽입될 수 있다는 점을 신경쓰도록 하자
answer = 7
print(f"정답은 {answer}입니다.") // 정답은 7입니다