http://acmicpc.net/problem/2562
{코드}
m, i = 0, 0
for j in range(9):
n = int(input())
if n > m:
m, i = n, j+1
print(m)
print(i)
{설명}
사실 이 문제는 배열에 저장하지 않아도 풀 수 있는 문제로 9번 반복문을 돌리며 가장 큰 값과 몇 번째 반복인지(해당 배열의 인덱스)를 저장해가며 반복이 끝나면 마지막으로 저장된 인덱스를 출력하면 됩니다.
{코드}
data = [int(input()) for _ in range(9)]
print(max(data))
print(data.index(max(data))+1)
{설명}
또다른 방법은 파이썬의 리스트 메서드를 사용하는 방법입니다.
리스트에는 index라는 메소드가 있는데 이는 파라미터로 넘겨진 값이 배열의 몇 번째 인덱스에 있는지 알려주는 메서드입니다.
해당 메서드에 max함수를 이용해 리스트의 최댓값을 넘겨주고 거기에 1을 더한 값을 출력하면 됩니다.
1을 더하는 이유는 인덱스는 0부터 시작하기 때문에 인덱스가 7이라면 8번째 숫자가 되기 때문입니다.
*리스트를 만든 방법은 리스트 컴프리헨션(List Comprehension)으로 대괄호 안에 for문을 넣고 그 앞에 식을 넣어 리스트를 만드는 방법입니다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 3052번-파이썬/Python] 나머지 (0) | 2020.10.01 |
---|---|
[백준 2577번-파이썬/Python] 숫자의 개수 (0) | 2020.10.01 |
[백준 10818번-파이썬/Python] 최소, 최대 (0) | 2020.09.29 |
[백준 1110번-파이썬/Python] 더하기 싸이클 (0) | 2020.09.29 |
[백준 10951번-파이썬/Python] A+B - 4 (0) | 2020.09.29 |