목록2026/01/11 (4)
컴퓨터공학 💻 도서관📚
문제 정의M 이상 N 이하의 수가 나열되어 순서에 상관없이 나열되어 있다고 할 때 각 수가 몇개인지 세어보는 방법을 구현해봅시다. 가령 20세부터 100세 이하의 사람들이 어느 한 장소에 머물고 있다고 할때 연령대에따라 혹은 각 나이에 따른 인원을 체크해볼 수 있습니다. 수행 시간 : O(n) , n : 데이터의 개수 테크닉 : 기준점을 순차적으로 높여 분류하는 테크닉 반대로 만들면? --> 기준점으로 순차적으로 낮춰서 분류하면 된다.ex) if ( age > 90 )else if ( age > 80 )else if ( age > 70 )...else if ( age >= 20 ) public class Counting { public static void main(String[] args) ..
경우의 수모든 경우에 대하여 탐색하여 결과를 찾는 문제문제의 범위가 간단한 경우 완전 탐색으로 모든 해를 찾아보는 방식수학에서 수열이나 조합과 같은 문제를 해결하는데 사용심각한 인플레이션을 겪고 있는 어느나라에서 1만원, 2만원, 5만원, 10만원 20만원 50만원 여섯가지 지폐를 사용하고 있다. 배고파씨는 100만원 어치 빵을 사려고 마트에 가서 돈을 내려다 여섯 가지 지폐를 이용하여 100만원 어치 빵을 사는 방법이 모두 몇 가지인지 궁금해 졌다. 지불하는 방법은 모두 몇 가지가 있을까?예를 들어 1만원 10장, 10만원 4장, 50만원 1장 으로 100만원을 지불 할 수 있다.모두 몇가지인지 구하세요 public class BruteForceSearch { public static void mai..
그리디(Greedy) 알고리즘다른 용어로 탐욕 알고리즘이라고도 함지금 상황에서 가장 좋은 해결책을 찾는 알고리즘으로 실제 여러 알고리즘 테스트에서도 흔히 볼 수 있는 문제중 하나임여러 조합에 따른 그 해를 찾는 경우가 많고 이때 제시되는 대부분의 조건은 "가장 금액이 큰 순서부터" 라던가 "가장 면적이 큰 타일을 우선적으로" 등의 방식으로 제시이 알고리즘은 조건이 명확할 때 정확한 답을 찾을 수 있다문제 정의가게에 간 철수는 8370원 어치 물건을 구매하였습니다. 철수에게는 500원짜리 20개 100원짜리 20개 50원짜리 20개 10원짜리 20개의 동전이 있습니다. 철수는 금액을 지불 할 때 단위가 큰 동전부터 지불하려고 합니다. 철수가 지불하게 되는 각 동전의 개수를 구하세요( 10원이 모여서 50원..
// 재귀함수 버전public int fibonacciRecur(int n) { if (n == 0) return 0; if (n == 1) return 1; return fibonacciRecur(n - 1) + fibonacciRecur(n - 2);} // 반복문 버전public int fibonacciIter(int n) { int ppre = 0; int pre = 1; int current = 0; if (n == 0) return 0; if (n == 1) return 1; for (int i = 2; i // 반복문 + 배열 버전public int fibonacciMem(int n) { value[0] = 0; value[1] = 1; if (n == ..
