Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링 컨테이너
- 명령어
- 문자열
- 코딩테스트
- 리눅스마스터 1급 정리
- map
- 자바
- JavaScript
- java 백준 1차원 배열
- Memoir
- Java
- 코테
- Linux
- 리눅스마스터 3과목
- 리눅스마스터1급
- GoingBus
- 반복문
- toCharArray
- 백준 java
- 월간코드챌린지
- 카카오
- 스프링 빈
- 고잉버스
- 연습문제
- 리눅스
- 개발자 회고록
- Kotlin
- 백준 javascript
- 자바스크립트 코딩의 기술
- 프로그래머스
Archives
- Today
- Total
hoon's bLog
[Java] 프로그래머스 부족한 금액 계산하기 자바 본문
반응형
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/82612
[나의 풀이]
class Solution {
public long solution(int price, int money, int count) {
long answer = 0;
long sum = 0;
for(long i=1; i<=count; i++){
sum += (price * i);
}
answer = money - sum;
//삼항연산자를 통해 return값이 음수인 경우 절대값 함수 Math.abs 활용
return (sum < money) ? 0 : Math.abs(answer);
}
}
정말 기대된다!!!
또 어떻게 코딩으로 예술을 해놨을지!!!
[다른 사람의풀이-1]
class Solution {
public long solution(long price, long money, long count) {
//1부터 count까지 합 공식을 통한 연산으로 반복문 생략...
return Math.max(price * (count * (count + 1) / 2) - money, 0);
}
}
[다른 사람의풀이-2]
class Solution {
public long solution(int price, int money, int count) {
long answer = 0;
answer = factorial(count, price) - money;
if(answer < 0) return 0;
return answer;
}
// 재귀함수 이용, N-factorial 함수 만들어서 리턴
public static long factorial(int N, int price) { ;
if(N <= 1) return (N * price);
return (N * price) + factorial(N - 1, price);
}
}
[정리]
- 짧다고 생각했던 반복문조차 합 공식 앞에선 사치다...
- 재귀(Recursion) 함수란 특정 함수 내에서 자기 자신을 다시 호출하여 문제를 해결해나가는 함수
- 자기 자신을 계속 호출하는 방식으로, 함수 안에 반드시 종료 구간의 Base Case를 생각하며 코드를 구현해야 함
- 알고리즘 자체가 재귀적인 표현이 자연스러운 경우, 변수 사용을 줄여주는데 재귀 함수가 유리!
개인피셜 난이도 : ★☆☆☆☆
계속해서 다른 사람의 코딩을 보며 무릎을 탁 치는 것은
아마도 다른 맛집의 레시피를 보며 새로운 맛을 찾아가는 것과 같지 않을까?
특별히 오늘 본 이 재귀 함수는 좀 더 깊게 알아보고,
실전에서도 자연스럽게 쓰일 수 있도록 연습이 필요한 듯하다.
추후 블로그를 통해 다시 다뤄보기에 아주 심도 있는 내용이 될 듯하다!
끝!
참고 블로그
- 재귀 함수 : https://lktprogrammer.tistory.com/106
- 재귀 함수에 관련된 각종 의견들 : https://kldp.org/node/134556
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
Java 프로그래머스 예산 자바 (0) | 2022.06.15 |
---|---|
[Java] 프로그래머스 소수 만들기 자바 (0) | 2022.06.14 |
Java 프로그래머스 최소 직사각형 자바 (0) | 2022.06.14 |
Java 프로그래머스 나머지가 1이 되는 수 찾기 자바 (0) | 2022.06.13 |
Java 프로그래머스 약수의 개수와 덧셈 자바 (0) | 2022.06.13 |