본문 바로가기

PROGRAMMING/ALGORITHM

[프로그래머스] 위클리 챌린지 1주차

https://programmers.co.kr/learn/courses/30/lessons/82612

 

코딩테스트 연습 - 1주차

새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이

programmers.co.kr

 

문제 요약 

놀이공원 이용료대비 가지고 있는 돈에서 얼마나 부족한지 구하면된다.

같거나 부족하지 않으면 0

부족하면 부족한 금액을 반환하면 된다.

단, 이용금액이 횟수와 비례하게 증가한다.

첫번째 이용료는 N이라면 두번째에는 2N이 필요하다.

 

풀이 방법

보자마자 팩토리얼이 생각나서

입력받은 이용횟수 만큼 1~N 합의 값을 구했다.

이 값에 처음 이용료를 구하면 총 이용료가 도출된다.

삼항연산자를 이용해, 같거나 부족하면 0 이외에는 이용료 - 소지금을 출력했다.

 

class Solution {
    public long solution(int price, int money, int count) {
        int totalCnt = 0;
        long finalPrice = 0;
        for(int i = 1; i <= count; i++){
            totalCnt +=i;
        }
        finalPrice = price * totalCnt;
        return money > finalPrice ? 0 : finalPrice - money;
    }
}