프로그래머스 부족한 금액 계산하기 (99클럽 코딩테스트 3일차 TIL)

KIMYEONGJUN·2024년 3월 29일
0
post-thumbnail

목적

3일차 금요일이다. 일주일마다 계속 문제를 풀다보니깐 조금씩 알게돼는것같기도하다.
오늘은 한문제를 풀게됐는데 내용이 어제보다 조금 어려운것같아서 생각을 조금하냐구 시간이 걸렸다.

문제

일딴 나는 이렇게 해보기로했다. 시간복잡도는 O(N)을 사용하기로했다. count만큼 반복문이 있어 입력 데이터 N에 비례하기 떄문이다. count가 최대 2,500 이므로 충분히 빠른 속도로 문제를 해결할 수 있다고 생각했다.

1부터 count까지 price를 곱한 값을 모두 더해 total계산해준다.
total과 money를 비교해 추가 금액필요 여부를 판단해준다.

// 놀이기구의 원래 이용료는 price원
// 놀이기구를 N번째 이용한다면 원래 이용료의 N배를 받기로한다.
// 즉 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됨
// 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return함
// 금액이 부족하지 않으면 0을 retrun 하기

class Solution {
    public long solution(int price, int money, int count) {
        long total = 0; // 누적 이용금액

        for(int i = 1; i <= count; i++) { // count회까지 누적 이용금액 계산
            total += price * i; // price를 곱해 누적
        }
        
        if(total <= money) { // 보유금액과 비교
            return 0; // 보유금액이 충분할 경우
        } else {
            return total - money; // 부조간 금액 리턴
        }
    }
}

마무리

막상 코딩을 하면서 생각해본거라 처음부터 생각을한게 아니고 코딩을 먼저했다. 다음부터는 생각을 먼저하고 코딩을 해야겠다는 생각이 많이 들었다.

profile
Junior backend developer

0개의 댓글