9줄의 숫자를 입력받아 첫줄에는 최대값 두번째줄에는 해당 값이 몇번째였는지 출력하는 문제
계속 런타임 에러가 나서 여러줄 입력을 받는 방법 찾아봤다.
이 친구는 그냥 한 줄만 받을 줄 안다
이 친구는 한번에 파일 끝까지(여러줄) 입력 받아서 리스트로 저장하는데 단점은 개행문자가 포함되어 요소마다 저장된다.
['apple\n', 'grape\n']
이 친구도 한번에 파일 끝까지 입력 받는데 읽은 대로 출력한다.(리스트x)
readlines()와 같이 리스트로 저장해주는데 개행문자를 빼준다.
['apple', 'grape']
문제는 계속 런타임 에러가 났다. 그도 그럴것이 입력의 끝을 알 수 없지 않았을까 싶다.
import sys
nlist = [sys.stdin.readline() for _ in range(9)]
max = 0
index = 0
for c in nlist:
if c > max:
max = c
index += 1
print(max)
print(index-1)
시간이 지나서 모범답안을 보니 저 함수를 쓰지 않고도 간단하게 해결하는 방법이 있었다. 입력될 개수대로 for 문을 돌려서 input()으로 숫자를 하나씩 받으면 되는거였다.
max 값도 그냥 max 함수 쓰면 됐다.
모범답안
## 모범답안
num_list = []
for i in range(9) :
num_list.append(int(input())) ## num_lst 안에 입력된 값들 차례대로 넣기
print(max(num_list)) ## max라는 메소드를 이용해 num_lst 내의 최댓값 출력하기
print(num_list.index(max(num_list))+1)