[백준/실버 III] 2579번 계단 오르기
·
알고리즘
규칙계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다.연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다.마지막 도착 계단은 반드시 밟아야 한다. 풀이 계단의 개수(n)가 6이고, 점수가 10, 20, 15, 25,10, 20 이라는 값을 입력 받으면 위와 같은 그림이 됩니다.이때 규칙을 지키며 최대 값을 구하기 위해서 전전 계단의 최대값 + 도착계단의 값과 전전전 계단의 최대값 + 전계단 값 + 도착계단의 값중에 큰 값을 구해야합니다. 첫번째 계단의 최대값은 계단이 하나뿐이라서 stairs[0] 값인 10 입니다. 두번째 계단의 최대값은 계단이 2개라서 stairs[0]과 sta..
[백준/실버 III] 1003번 피보나치 함수
·
알고리즘
주어진 문제는 피보나치 수를 계산하면서 0과 1이 각각 몇 번 출력되는지 세는 프로그램을 작성하는 것입니다. 이 문제를 해결하기 위해 피보나치 수의 재귀 호출을 추적하면서 각 호출에서 0과 1이 출력되는 횟수를 기록해야 합니다.문제의 핵심은 피보나치 수를 계산할 때 발생하는 중복 계산을 피하고 효율적으로 해결하는 것입니다. 이를 위해 동적 프로그래밍(DP)을 사용할 수 있습니다. DP를 사용하면 이미 계산된 피보나치 값을 저장하여 중복 계산을 피할 수 있습니다. 1. 동적 프로그래밍을 이용한 메모이제이션:0과 1의 출력 횟수를 저장하는 배열을 생성합니다.미리 계산된 값을 저장하여 중복 계산을 피합니다.2. 피보나치 수 계산:피보나치 수를 재귀 호출 없이 반복문을 통해 계산합니다.각 피보나치 수를 계산하면..
[백준/실버 IV] 17219번 비밀번호 찾기
·
알고리즘
이 문제는 경민이가 사이트 주소와 비밀번호를 빠르게 검색할 수 있도록 해주는 프로그램을 작성하는 것입니다. 이를 위해 HashMap을 사용하여 사이트 주소를 키로, 비밀번호를 값으로 저장한 후, 검색 요청이 들어올 때마다 빠르게 비밀번호를 찾아 출력하면 됩니다.입력 처리: 먼저 저장된 사이트 주소와 비밀번호의 수 N과 비밀번호를 찾으려는 사이트 주소의 수 M을 입력받습니다.HashMap 구성: N개의 사이트 주소와 비밀번호를 HashMap에 저장합니다.비밀번호 검색: M개의 비밀번호를 찾으려는 사이트 주소에 대해 HashMap에서 비밀번호를 검색하여 출력합니다.public class Main { public static void main(String[] args) throws IOException { ..
[백준/실버 IV] 11399번 ATM
·
알고리즘
이 문제는 그리디 알고리즘을 사용하여 해결할 수 있습니다. 문제의 핵심은 돈을 인출하는 데 걸리는 시간을 최소화하는 것입니다. 이를 위해서는 인출 시간이 적게 걸리는 사람부터 인출을 시작하는 것이 최적의 방법입니다.이 문제를 해결하는 방법은 다음과 같습니다:입력 처리: 먼저, 사람의 수 n과 각 사람이 인출하는 데 걸리는 시간을 입력받습니다.정렬: 각 사람이 인출하는 데 걸리는 시간을 오름차순으로 정렬합니다.총 대기 시간 계산: 정렬된 순서에 따라 각 사람이 인출하는 데 걸리는 총 시간을 계산합니다.이 접근법은 각 사람이 인출을 시작하기까지 기다리는 시간을 최소화하여 전체 인출 시간을 최소화합니다.예를 들어, 5명의 사람들이 있고, 인출 시간이 [3, 1, 4, 3, 2]로 주어진 경우:정렬된 후: [1..
[백준/실버 IV] 11047번 동전 0
·
알고리즘
주어진 문제는 그리디 알고리즘을 사용하여 해결할 수 있습니다. 문제는 주어진 여러 종류의 동전을 사용하여 특정 금액 K를 최소 개수의 동전으로 만드는 것입니다. 동전의 가치는 오름차순으로 주어지며, 각 동전의 가치는 이전 동전 가치의 배수이므로 그리디 알고리즘을 적용하는 것이 최적의 해를 보장합니다.이 문제를 해결하는 방법은 다음과 같습니다:입력 파싱: 먼저 동전의 종류 N과 목표 금액 K를 입력으로 받습니다.동전 배열 역순으로 정렬: 가장 큰 가치의 동전부터 시작하여 가능한 한 많이 사용합니다.반복적 선택: 현재 남은 금액을 현재 동전 가치로 나누어 사용할 수 있는 최대 개수의 동전을 사용합니다. 이후 남은 금액에 대해 동일한 과정을 반복합니다.종료 조건: 남은 금액이 0이 되면 종료합니다.다음은 이 ..
치령
'알고리즘' 카테고리의 글 목록