최댓값 - 2562

그로밋·2023년 10월 16일
0

krafton jungle

목록 보기
3/58

9줄의 숫자를 입력받아 첫줄에는 최대값 두번째줄에는 해당 값이 몇번째였는지 출력하는 문제

계속 런타임 에러가 나서 여러줄 입력을 받는 방법 찾아봤다.

sys.stdin.readline()

이 친구는 그냥 한 줄만 받을 줄 안다

sys.stdin.readlines()

이 친구는 한번에 파일 끝까지(여러줄) 입력 받아서 리스트로 저장하는데 단점은 개행문자가 포함되어 요소마다 저장된다.

['apple\n', 'grape\n']

sys.stdin.read()

이 친구도 한번에 파일 끝까지 입력 받는데 읽은 대로 출력한다.(리스트x)

sys.stdin.read().splitlines()

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)
profile
Work as though your strength were limitless. <S. Bernhardt>

0개의 댓글