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 | 31 |
Tags
- SpringBoot
- http
- Android
- spring
- Proxy
- Thymeleaf
- 스프링 핵심 기능
- kotlin
- transaction
- Exception
- Servlet
- jpa
- 백준
- 자바
- java
- 인프런
- pointcut
- db
- 그리디
- 스프링
- JPQL
- AOP
- 알고리즘
- 스프링 핵심 원리
- springdatajpa
- QueryDSL
- 김영한
- Spring Boot
- JDBC
- Greedy
Archives
- Today
- Total
개발자되기 프로젝트
경우의 수 문제(Brute-Force Search) 본문
1. "모든" 경우에 대하여 탐색하여 결과를 찾음 --> 무식하게 다찾아보기.
2. 문제의 범위가 작은 경우 완전 탐색으로 해를 찾음
3. 수열, 조합과 같은 문제를 푸는데 사용됨.
4. 문제 정의
- 어느 국가에서 10만원, 20만원, 50만원, 100만원, 200만원, 500만원 지폐를 사용.
- A는 3000만원 지불 필요.
- 6가지 지폐를 활용하여 300만원 지불하는 방법은 모두 몇 가지?
5. 지폐가 늘어나면 for문이 추가됨. computation time이 지수적으로 증가함.
6. code
package BruteForceSearch;
public class bruteForceSearch {
public static void main(String[] args) {
int[] bills = {10, 20, 50, 100, 200, 500};
int count = 0;
int price = 3000;
for(int i0 = price; i0 >=0; i0-=bills[0]){
for(int i1=i0; i1>=0; i1-=bills[1]) {
for (int i2 = i1; i2 >= 0; i2 -= bills[2]) {
for (int i3 = i2; i3 >= 0; i3 -= bills[3]) {
for (int i4 = i3; i4 >= 0; i4 -= bills[4]) {
if (i4 / bills[5] <= 0) {
count++;
}
}
}
}
}
}
System.out.println("지불 방법의 수 : " + count);
}
}
*github : https://github.com/bsh6463/Algorithm/tree/main/BruteForceSearch
'Java > 알고리즘' 카테고리의 다른 글
그리디(Greedy) 알고리즘 (0) | 2022.05.15 |
---|---|
특정 범위의 숫자가 나열돼 있을 때 각 숫자의 개수 (0) | 2021.06.26 |
그리디(Greedy) 알고리즘 (0) | 2021.06.26 |
피보나치 수열(Fibonacci Sequence) (0) | 2021.06.13 |
미로 찾기! (0) | 2021.06.10 |
Comments