티스토리 뷰
[Python/Hackerrank] Basic Data Types > Find the Runner-Up Score!
hoojiv 2021. 12. 6. 14:35Find the Runner-Up Score!
Given the participants' score sheet for your University Sports Day, you are required to find the runner-up score. You are given n scores. Store them in a list and find the score of the runner-up.
Input Format
The first line contains . The second line contains an array A[] of n integers each separated by a space.
Constraints
- 2 <= n <= 10
- -100 <= A[i] <= 100
Output Format
Print the runner-up score.
Sample Input 0
5
2 3 6 6 5
Sample Output 0
5
Explanation 0
Given list is [2,3,6,6,5]. The maximum score is 6, second maximum is 5. Hence, we print 5 as the runner-up score.
문제해석
1. input 값으로 정수 n값과 배열 A[] 2개가 입력된다. n은 배열의 크기인 것 같다.
2. runner-up score는 준우승 점수라는 의미로 배열에서 2번째로 큰 숫자를 찾으면 된다.
3. 샘플문제는 [2, 3, 6, 6, 5] 배열에서 2번째로 큰 값을 찾는 것이므로 정답은 5가 된다.
문제풀이
어떻게든 데이터를 배열로 변경하여 풀어야 한다고 생각을 하였다.
그래서 입력받은 arr을 list(arr) 구문을 통해 [2, 3, 6, 6, 5] 포맷의 배열로 변경을 하였다.
여기서 max(arrList)를 하면 최대값인 6은 가져올 수 있겠지만 문제에서 원하는 2번째 값은 아니다.
또, arrList.sort(reverse = True) 구문을 통해 역순으로 정렬한 후 arrList[1]를 할 경우에도 [6, 6, 5, 3, 2] 배열에서 2번째 값이므로 또 6을 가져오게 된다.
그래서 for문을 활용하여 값을 비교 해야하나 고민하다가 중복을 제거하면 되겠다고 생각을 하였다.
찾아보니 파이썬에서는 배열의 중복을 제거하려면 집합으로 변경하면 된다고 한다.
그래서 set(list(arr))이라는 구문이 생기게 되었고, 이렇게 하면 {2, 3, 6, 5}로 값이 변한다.
이 값을 list() 함수를 통해 [2, 3, 6, 5] 포맷의 배열로 다시 변경해 준 후 역순으로 정렬하고 2번째 값을 가져오면 결과가 나온다.
이렇게 하니까 문제에서 제시한 n 값은 사용하지 않게 되었다...
if __name__ == '__main__':
n = int(input())
arr = map(int, input().split())
arrList = list(set(list(arr)))
arrList.sort(reverse = True)
print(arrList[1])
Discussions를 보니 나처럼 풀이한 사람도 많고, 전체적으로 n값은 사용하지 않는 것 같다.
아래처럼 list() 함수로 배열로 만들고 max값을 제거한 후 다시 max값을 출력하도록 풀이한 사람도 있다.
i = int(input())
lis = list(map(int,raw_input().strip().split()))[:i]
z = max(lis)
while max(lis) == z:
lis.remove(max(lis))
print max(lis)
'Programming > Python' 카테고리의 다른 글
[Python/Hackerrank] Basic Data Types > Finding the percentage (0) | 2021.12.07 |
---|---|
[Python/Hackerrank] Basic Data Types > Nested Lists (0) | 2021.12.06 |
[Python/Hackerrank] Basic Data Types > List Comprehensions (0) | 2021.12.06 |
[Python/Tutorial따라하기] python install (0) | 2021.12.06 |
[Python/Hackerrank] Introduction (0) | 2021.12.06 |
- Total
- Today
- Yesterday
- insert
- 동국알앤에스
- 매매일지
- TSQL
- 대원화성
- tensorflow
- DATABASE
- 분석탭
- 테슬라
- hackerrank
- HK이노엔
- SQL Server
- Tableau
- 리비안
- string
- 몰누피라비르
- 코로나19
- 경구치료제
- 넷플릭스
- 에코캡
- Weather Observation Station
- mysql
- 넥스트BT
- MS SQL Server
- MSSQL
- 미중무역전쟁
- 해커랭크
- list
- python
- python3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |