밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. readline과 int나 float를 사용하는 입력 방식
readline을 사용해서 입력할 때는 맨 끝에 \n이 붙어서 입력됩니다.
하지만, 입력한 값을 int나 float으로 처리해 정수, 실수형으로 만들어 줄 때는
굳이 \n을 떼기 위해 rstrip을 사용할 필요가 없습니다.
숫자 형태를 만들어줄 때 자동으로 사라집니다.
num = int(sys.stdin.readline())
2. map, split, list를 사용하는 입력 방식
실수나 정수인 여러 값들이 입력값일 때,
split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,
map 내장 함수로 각각의 값들을 int형이나 float형으로 정수, 실수 자료형으로 변환하는 한 뒤,
list로 묶어 리스트 변수에 넣어주는 기법은 매우 많이 쓰입니다.
코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.
num_list = list(map(int, sys.stdin.readline().split()))
예제 설명
1. 첫 번째 예제
- 입력
7
2 4 7 3 1 2 5
- 출력
2 3 5
- 설명
첫 줄에 입력한 데이터의 개수 N은 7입니다.
그 다음 줄에 입력한 N개의 데이터는 2, 4, 7, 3, 1, 2, 5입니다.
첫 번째 데이터는 2, 중간 데이터는 3, 마지막 데이터는 5이므로
각각 공백으로 구분해 2 3 5를 출력합니다.
생각한 풀이 과정
첫 줄에 N >= 1이며 홀수인 데이터의 개수 N을 입력합니다.
그 다음 줄에 N개의 데이터를 공백으로 구분해 입력합니다.
N개의 데이터는 각각 int형으로 변환하고 리스트에 넣어줍니다.
첫 번째 데이터인 리스트에서 인덱스 0에서의 값,
중간 데이터인 리스트에서 인덱스가 리스트의 길이를 2로 나눈 몫의 값,
마지막 데이터인 리스트에서 인덱스가 -1인 값을 공백으로 구분해 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 첫 줄에 데이터의 개수 N을 입력합니다.
# N은 N >= 1인 홀수입니다.
# int형으로 변환합니다.
N = int(stdin.readline())
# 그 다음 줄에 N개의 데이터를 공백으로 구분해 입력합니다.
# 각각 int형으로 변환하고, 리스트 변수에 넣어줍니다.
data = list(map(int, stdin.readline().split()))
# 첫 번째 데이터, 중간 데이터, 마지막 데이터를 공백으로 구분해 출력합니다.
print(data[0], data[N // 2], data[-1])
제출 결과
댓글