![[백준/BOJ] 2562번: 최댓값 (Python) 풀이](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjxlx3%2FbtsHETrN3Mq%2FdnGkPoSTnlA3z0IbshwyDK%2Fimg.png)
[백준/BOJ] 2562번: 최댓값 (Python) 풀이Dev/PS2024. 5. 28. 22:51
Table of Contents
Baekjoon Online Judge (BOJ) 의 2562번 문제인 '최댓값' 을 풀어보았다.
[문제 정보]
https://www.acmicpc.net/problem/2562
문제 개요:
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지 구하는 문제이다.
즉, 서로 다른 9개의 자연수를 입력받고, 이 자연수들 중 최댓값과 최댓값의 index를 출력하면 된다.
이 문제의 포인트는, 주어지는 자연수의 개수가 항상 9개로 고정되어 있다는 점이다.
이 문제는 파이썬에서는 두 가지 방법이 있기에 두 방법 모두 풀이해 보려고 한다.
모든 코드에서 공통되는 1번 방법, 파이썬 내장 함수를 활용한 2번 방법이 있다.
1번 방법 알고리즘:
- 최댓값을 넣어 줄 maxVal 변수, 현재 입력받은 값을 넣어 줄 curVal(current value) 변수, 최댓값의 index를 넣어 줄 maxValIndex 변수를 만들고 기본값 0(int)으로 초기화해준다.
- 문제에서 '9개의 자연수' 로 개수가 고정되어 있으므로 9번 반복하는 반복문을 만들어준다. (줄바꿈으로 입력받기 때문)
- n번째 반복될 때마다 입력받은 값(자연수)를 curVal 변수에 초기화해준다.
- 현재 입력받은 값과 현재 기준 최댓값을 비교하여, 현재 입력받은 값이 더 클 경우 maxVal을 갱신해준다.
- 최댓값이 바뀜과 동시에 해당 최댓값의 index+1 값을 maxValIndex에 초기화해준다.
- 위 3, 4, 5번 과정을 9번 반복하고, 최댓값과 최댓값의 index를 구했으므로 출력해준다.
1번 방법 코드:
maxVal = 0
curVal = 0
maxValIndex = 0
for i in range(0, 9):
curVal = int(input())
if curVal > maxVal:
maxVal = curVal
maxValIndex = i+1
print(maxVal)
print(maxValIndex)
2번 방법 알고리즘:
2번 방법은 딱히 알고리즘이랄게 없이, 파이썬의 내장함수인 max()와 index() 함수를 사용하면 각각 list의 값 중 가장 큰 값, 해당 값의 순서를 찾아내준다.
- arr 변수를 만들고 빈 배열로 초기화해준다.
- 줄바꿈으로 구분된 9개의 자연수를 9번 반복하는 반복문을 이용하여 순서대로 입력받음과 동시에, append() 함수를 활용하여 arr 배열의 끝에서부터 입력받은 값을 추가한다.
- 파이썬의 내장함수인 max(), index()를 활용하여 바로 최댓값과 최댓값의 순서를 출력해준다. 단, index는 0부터 시작하기에(1번째 수는 index가 0) 최댓값의 순서는 1을 더한 값을 출력한다.
2번 방법 코드:
arr = []
for i in range(0, 9):
arr.append(int(input()))
print(max(arr))
print(arr.index(max(arr))+1)
위 풀이에 대한 질문이나 틀린 정보가 있다면 댓글로 말씀해 주시면 감사하겠습니다!
728x90
'Dev > PS' 카테고리의 다른 글
[백준/BOJ] 10813번: 공 바꾸기 (Python) 풀이 (0) | 2024.05.30 |
---|---|
[백준/BOJ] 10813번: 공 넣기 (Python) 풀이 (0) | 2024.05.30 |
[백준/BOJ] 10818번: 최소, 최대 (Python) 풀이 (0) | 2024.05.27 |
[백준/BOJ] 10871번: X보다 작은 수 (Python) 풀이 (0) | 2024.05.27 |
[백준/BOJ] 10807번: 개수 세기 (Python) 풀이 (0) | 2024.05.27 |
@KangJerry :: 강제리의 개발 이야기
실력있는 개발자가 되고싶은 22학번 대학생입니다. (현재는 군복무 중)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!