[java] 프로그래머스 - 부족한 금액 계산하기알고리즘/프로그래머스2021. 8. 9. 22:47
Table of Contents
내가 본 프로그래머스 문제들은 대부분 어려워 보였는데 이웃님들 중 한 분께서 프로그래머스 문제를 python으로 푸셨다. 문제 내용을 보고 나서 오! 나도 풀 수 있겠다 싶어서 풀어보았다.
제한사항에 money의 범위가 10억 적혀있어서 백준에서 풀던 느낌으로 BigInteger 쓸 생각이었는데...
백준보다 친절한 코딩 창... long 타입을 쓰면 된다고 나와있다....
return을 무조건 answer로 끝내야 하나?
문제 풀이
tot 변수를 하나 만들어서 N번 탈 때마다 놀이기구 이용료가 N배 증가하기 때문에 누적시켜주면 된다.
for (int i=1; i<=count; i++){
tot += price * i;
}
그리고 tot에서 money를 빼서 양수가 나오게 되면 돈이 부족한 것이기 때문에 부족한 금액을 리턴해주면 되고
return tot - money;
그게 아니라면 0을 리턴 시켜주면 된다.
처음 쓴 코드다
class Solution {
public long solution(int price, int money, int count) {
long answer = -1;
long tot = 0;
for (int i=1; i<=count; i++){
tot += price * i;
}
answer = tot - money;
if(tot > money)
return answer;
else{
answer = 0;
return answer;
}
}
}
테스트 케이스 4번에서 틀렸습니다. 가 나왔다... 나머지 22개 통과했는데도 틀렸습니다 가 나온 걸 보면...
테스트 케이스에서 하나라도 틀리면 안되는 듯하다...
그래서 코드 수 제한도 있나 싶어서... answer로 꼭 반환을 안 해도 된다면 코드 수를 더 줄이기로 했다.
class Solution {
public long solution(int price, int money, int count) {
long answer = -1;
long tot = 0;
for (int i=1; i<=count; i++){
tot += price * i;
}
if(tot - money > 0)
return tot - money;
else{
return 0;
}
}
}
통과...
여담) 혹시 몰라서 첫 번째 코드 다시 돌려봤는데... 문제없다... 그럼 아까는 뭐지...
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[python] 위클리 챌린지 - 2주차 상호평가 (0) | 2021.10.15 |
---|---|
[python] 위클리 챌린지 - 1주차 부족한 금액 계산하기 (0) | 2021.10.09 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊