-
프로그래머스 : 부족한 금액 계산하기코딩테스트 문제 풀이/프로그래머스 2023. 11. 22. 01:01
내 코드
class Solution { public long solution(int price, int money, int count) { long answer = 0; for (int i = 0; i < count; i++) { answer += (i + 1) * price; } return answer > money ? answer - money : 0; } }
문제 읽고 바로 풀어서 제출 했는데 , 한번에 통과되어서 메모와 타이머를 측정하지 않았다.
다른 사람 코드를 부러갔다가 새로운 방법을 배워서 기억하기 위해 글을 쓰기로했다!
프로그래머스 다른사람풀이 첫번째
다른 사람 코드 _class Solution { public long solution(long price, long money, long count) { return Math.max(price * (count * (count + 1) / 2) - money, 0); } }
나는 이 문제를 price * ( n + (n - 1) + (n - 2) + ... + 2 + 1 ) 으로 풀었는데, 가져온 코드에서는 price * (n * (n + 1)) / 2 로 계산했다.
그냥 외우기는 힘드니, 테스트 고고 🤔
n = 4 // #1 n + (n - 1) + (n - 2) + ... + 2 + 1 = 4 + 3 + 2 + 1 = 10 // #2 count * (count + 1) / 2 = 4 * 5 / 2 = 20 / 2 = 10
n = 6 // #1 n + (n - 1) + (n - 2) + ... + 2 + 1 = 6 + 5 + 4 + 3 + 2 + 1 = 21 // #2 count * (count + 1) / 2 = 6 * 7 / 2 = 42 / 2 = 21
오호..!
'코딩테스트 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스: 서울에서 김서방 찾기 (0) 2023.11.23 프로그래머스: 소수만들기 (0) 2023.11.23 프로그래머스 : 체육복 (0) 2023.11.22 프로그래머스: 자연수 뒤집어 배열로 만들기 (0) 2023.11.22 프로그래머스 : 둘만의 암호 (0) 2023.11.22