문제 설명
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
예제 입력 1
3
29
38
12
57
74
40
85
61
예제 출력 1
85
8
출제 의도
이 문제는 다음과 같은 프로그래밍 능력을 평가합니다.
- 여러 숫자를 리스트에 저장하고 다루는 능력
- for 루프를 사용해 정해진 횟수만큼 입력을 받는 방법
- 숫자들 중에서 가장 큰 값을 찾아내는 논리적 사고
- 리스트에서 특정 숫자의 위치를 찾는 방법
- 리스트의 인덱스를 문제에서 요구하는 순서로 바꾸는 능력
- 파이썬의 편리한 기능인 max()와 index() 함수를 활용하는 능력
정답 코드
모법 답안
numbers = []
for i in range(9):
a = int(input())
numbers.append(a)
print(max(numbers))
print(numbers.index(max(numbers)) + 1)
- numbers = []
- 빈 리스트 numbers를 만듭니다. 이 리스트에 입력받은 숫자들을 저장할 거예요.
- for i in range(9):
- 9번 반복하는 루프를 시작합니다. 이렇게 해서 9개의 숫자를 입력받을 수 있어요.
- a = int(input())
- 사용자로부터 숫자를 입력받아 정수로 변환하고 a에 저장합니다.
- numbers.append(a)
- 입력받은 숫자 a를 numbers 리스트의 끝에 추가합니다.
- print(max(numbers))
- max() 함수를 사용해 numbers 리스트에서 가장 큰 값을 찾아 출력합니다.
- print(numbers.index(max(numbers)) + 1)
- max(numbers)로 최댓값을 다시 찾습니다.
- numbers.index()로 그 최댓값의 위치(인덱스)를 찾습니다.
- 찾은 인덱스에 1을 더합니다. (리스트의 인덱스는 0부터 시작하지만, 문제는 1부터 시작하는 위치를 요구하므로)
- 최종 결과(최댓값의 위치)를 출력합니다.
'알고리즘' 카테고리의 다른 글
[백준] 11654번 아스키 코드 - Python3 (0) | 2024.09.07 |
---|---|
[백준] 15596번 정수 N개의 합 - Python3 (0) | 2024.09.07 |
[백준] 2739번 구구단 - Python3 (0) | 2024.09.06 |
[백준] 9498번 시험성적 - Python3 (2) | 2024.09.06 |
[백준] 10869번 사칙연산 - Python3 (0) | 2024.09.06 |