본문 바로가기

Fundamentals/Algorithms

[해커랭크] Breaking the Records

문제링크

 

Breaking the Records | HackerRank

Given an array of Maria's basketball scores all season, determine the number of times she breaks her best and worst records.

www.hackerrank.com

함수는 게임당 점수 배열을 입력으로 받고, 두 개의 값으로 구성된 배열을 반환합니다. 첫 번째 값은 마리아가 최고 점수 기록을 깬 횟수, 두 번째 값은 최저 점수 기록을 깬 횟수입니다. 예를 들어, 마리아가 게임에서 [3, 4, 21, 36, 10, 28, 35, 5, 24, 42] 점수를 얻었다면, 그녀는 최고 점수 기록을 4번, 최저 점수 기록은 0번 깼으므로 결과는 [4, 0]이 됩니다.

 

풀이 :

function breakingRecords(scores) {
    let maxScore = scores[0];
    let minScore = scores[0];
    let maxBreaks = 0;
    let minBreaks = 0;

    for (let i = 1; i < scores.length; i++) {
        if (scores[i] > maxScore) {
            maxScore = scores[i];
            maxBreaks++;
        } else if (scores[i] < minScore) {
            minScore = scores[i];
            minBreaks++;
        }
    }

    return [maxBreaks, minBreaks];
}

 

최대, 최저 점수를 저장할 변수를 생성하고 초기값으로 스코어의 첫번째 요소를 할당합니다. for문으로 scores 배열을 순회하면서 최고, 최소 점수와 비교하여 현재 저장되어 있는 최대 점수보다 더 높으면 maxScore를 갱신하면서 maxBreaks를 1 더합니다. 반대로 최소 점수는 저장되어 있는 최소 점수보다 더 낮으면 minScore를 갱신하면서 minBreaks를 1 더합니다

'Fundamentals > Algorithms' 카테고리의 다른 글

[해커랭크] Subarray Division  (0) 2023.12.04
[해커랭크] camelcase  (0) 2023.11.26
[해커랭크] Number Line Jumps  (0) 2023.11.16
[해커랭크] Apple and Orange  (0) 2023.11.16
[해커랭크] Grading Students  (0) 2023.11.16