준호씨의 블로그
hackerrank - Breaking the Records - Python3 본문
문제: https://www.hackerrank.com/challenges/breaking-best-and-worst-records/problem
Maria는 대학농구를 하며 프로를 하고 싶어 합니다. 매 시즌에 그녀는 자신의 플레이 기록을 유지합니다. 그녀는 시즌별 최고 점수와 최소 점수를 깨는 횟수를 표로 기록합니다. 첫 경기에서 득점 한 점수를 기록하고 거기서부터 계산합니다.
예를 들어 특정 시즌의 점수를 scores = [12, 24, 10, 24]로 가정합니다. 점수는 게임의 순서대로 기록합니다. 그녀는 결과를 다음과 같이 작성합니다.
Count
Game Score Minimum Maximum Min Max
0 12 12 12 0 0
1 24 12 24 0 1
2 10 10 24 1 1
3 24 10 24 1 1
Maria의 시즌 하나의 점수가 주어졌을 때 그녀가 그녀의 점수를 깬 횟수를 찾아서 출력하시오.
Function Description
breakingRecords함수를 완성하시오. 그녀가 그녀의 기록을 깬 횟수가 포함된 정수 배열을 반환해야 합니다. 0번째는 가장 크게 깬 점수이고 1번째는 가장 적게 깬 기록입니다.
breakingRecords는 다음은 파라미터들을 가집니다.
- scores: 정수 배열
Input Format
첫 번째 줄이 정수 n은 게임의 수입니다.
두 번째 줄은 스페이스로 구분된 n개의 정수 숫자로 점수들을 나타냅니다.
Constraints
1<=n<=1000
0<=scores[i]<=10^8
Sample Input 0
9
10 5 20 20 4 5 2 25 1
Sample Output 0
2 4
Explanation 0
그녀는 그녀의 최고 점수를 두 번 깹니다. 2번째와 7번째입니다. 최악의 기록은 4번입니다. 1,4,6,8번째입니다. 그래서 우리는 2 4를 출력합니다.
풀이
템플릿 코드
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the breakingRecords function below.
def breakingRecords(scores):
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input())
scores = list(map(int, input().rstrip().split()))
result = breakingRecords(scores)
fptr.write(' '.join(map(str, result)))
fptr.write('\n')
fptr.close()
그리 어려운 문제는 아닙니다. 일단 첫 번째 점수를 최고, 최저 점수 기준을 잡습니다. 점수를 순서대로 보면서 최고 점수보다 큰 점수가 나오면 최고 점수를 바꾸면서 최고 점수 갱신 카운트를 1 증가시킵니다. 반대로 최저 점수보다 작은 점수가 나오면 최저 점수를 바꾸면서 최저 점수 갱신 카운트를 1 증가시킵니다.
최고 점수 갱신 카운트와 최저 점수 갱신 카운트를 배열로 반환합니다. 설명한 것을 코드로 구현하면 아래와 같습니다.
def breakingRecords(scores):
best = scores[0]
worst = scores[0]
break_best = 0
break_worst = 0
for score in scores:
if score > best:
best = score
break_best += 1
if score < worst:
worst = score
break_worst += 1
return [break_best, break_worst]
'개발이야기 > PS - Problem Solving, 알고리즘' 카테고리의 다른 글
hackerrank - Divisible Sum Pairs - Python3 (0) | 2020.05.28 |
---|---|
hackerrank - Birthday Chocolate - Python3 (0) | 2020.05.23 |
hackerrank - Between Two Sets - Python3 (0) | 2020.05.16 |
hackerrank - Kangaroo - Python3 (0) | 2020.05.09 |
hackerrank - Apple and Orange - Python3 (0) | 2020.05.07 |