baekjoon73 백준 알고리즘 2529번: 부등호 문제 정보 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력 www.acmicpc.net 핵심 백트래킹으로도 문제를 풀이할 수 있는데, 나는 조금은 다른 방식으로 문제를 풀이했다 일단 문제의 경우 부등호 관계를 만족시키는 최소/최대 정수를 구하는 문제이다 중복된 정수는 사용할 수 없으며, 첫 자리에 0이 가능한 것이 특징이다 당연하게도, 최소가 되려면 앞자리의 수가 작아야 하고 최대가 되려면 앞자리의 수가 커야 한다 다만 생각해야 할 것은 무작정 앞자리의 수를 최소/최대 수로 집어넣는 것이 아니라, 뒤에 부등호를 잘 보아야 한다는 점이다.. 알고리즘/Java 2024. 4. 3. 백준 알고리즘 2217번: 로프 문제 정보 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 핵심 어렵지 않은 단순 정렬 문제이다. 문제를 정리하자면 물체의 중량이 x일 때, 선택한 로프의 개수가 n개라면, 각 로프는 x/n의 중량을 부담 가능해야 한다 문제의 솔루션은 다음과 같다 들수 있는 최대 중량 = 선택한 로프들 중 최소 중량 * 사용된 로프의 수 어차피 로프를 많이 선택해 봤자, 각 로프들은 동일한 무게씩 배분한다 1 500 1000 -> 총 3개의 로프를 선택했다고 가정하자, 어떠한 큰 숫자가 나오더라도 첫번째 로프는 1의.. 알고리즘/Java 2024. 4. 2. 백준 알고리즘 1931번: 회의실 배정 문제 정보 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 핵심 최적의 해를 찾는 과정을 잘 생각해야 하는 문제인것 같다고 생각했고, 해당 문제를 풀이하는 과정은 다음과 같다 먼저 해당 회의시간(시작시간, 종료시간) 을 종료시간을 기준으로 정렬시킨다 왜냐하면, 현재 위치를 기준으로 가능한 회의 중 종료시간이 가장 빠른(작은) 회의를 선택해야 더 많은 회의를 진행할 수 있기 때문이다 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 위는 예제의 데이터인데, 이미 정렬되어 있지만 정렬한다면 위와 같은 순서로 정렬될 것이다 만약 종료 시간이 같다면? 시작 시간이 작은(빠른) 회의를 기준으로 .. 알고리즘/Java 2024. 3. 23. 백준 알고리즘 11053번: 가장 긴 증가하는 부분 수열 문제 정보 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 핵심 DP 배열의 정의를 어떻게 내리느냐가 중요했다고 생각한다 매번 DP 관련 문제를 풀면서 느끼는 것이지만, 코드는 비슷한데 생각을 만들어 내느냐가 가장 중요한 것 같다 이 문제같은 경우에는 dp 배열을 다음과 같이 정의하였다 dp[i] : i번째 수를 선택했을 때, 가질 수 있는 최대의 길이 현재 위치를 무조건 택한다는 가정이 있기때문에, 1. 이전 dp 배열을 보면서 해.. 알고리즘/Java 2024. 3. 20. 백준 알고리즘 11052번: 카드 구매하기 문제 정보 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 핵심 DP를 얼마나 잘 활용할 수 있을 것인가! 오랜만에 풀어본 문제라 조금 시간이 소요된 것 같다 하지만 이러한 문제는 케이스를 나눠서 생각하다 보면 주변과의 관계가 보이는 것 같다 먼저 문제를 이해해 보면, P(1) P(2) 처럼 괄호 안에 들어있는 작은 숫자는 카드의 개수를 뜻한다. (1) 은 카드 1개가 들어있는 카드팩을 뜻하며, (2)는 카드 2개가 들어있는 카드팩을 뜻한다 P(1)은 카드 1개가 들어있는 카드팩의 가격을 뜻한다. P(1) = 3 이면.. 알고리즘/Java 2024. 3. 19. 이전 1 2 3 4 5 6 7 8 ··· 15 다음