본문 바로가기

Algorithm/BeakJoon

(24)
[BeakJoon 20057] 마법사 상어와 토네이도 안녕하세요. 이번 포스팅에서는 저번 포스팅에 이어 토네이도 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 위 링크를 통해 확인하실 수 있습니다. 이 문제는 크게 두 가지를 구현하셔야 합니다. 1. 토네이도 방향으로 순회 2. 방향에 맞게 흩뿌리기 우선 토네이도 방향으로 순회 먼저 설명드리겠습니다. 저 같은 경우 이런 식으로 진행되는 것을 알았습니다. 따라서 재귀적으로 ..
[BeakJoon 20056] 마법사 상어와 파이어볼 안녕하세요. 이번 포스팅에서는 백준 20056 마법사 상어와 파이어볼 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 삼성 문제집을 풀고 있는데... 간만에 구현의 매운맛 제대로 느끼고 있습니다. 삼성 문제에서 자주 나타나는 특징중에 하나가 인덱스 처리를 깔끔하게 하기가 어렵다는 점인데요. 문제의 제한을 보시면 s의 범위가 10..
[BeakJoon 20055] 컨베이어 벨트 위의 로봇 안녕하세요. 이번 포스팅에서는 백준 20055 컨베이어 벨트 위의 로봇 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 이 문제는 대표적인 시뮬레이션 문제입니다. 근데 문제에서 말이 좀 헷갈리게 써있어서, 문제를 파악하는데 시간을 충분히 사용하신 후 코딩에 들어가시는 것을 추천드립니다. 문제를 자세히 살펴보시면 결국 container가 1~2N ..
[BeakJoon 19942] 다이어트 안녕하세요. 오늘은 백준 19942 다이어트 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/19942 19942번: 다이어트 식재료 N개 중에서 몇 개를 선택해서 이들의 영양분(단백질, 탄수화물, 지방, 비타민)이 일정 이상이 되어야 한다. 아래 표에 제시된 6가지의 식재료 중에서 몇 개를 선택해서 이들의 영양분의 각 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 저는 다음의 알고리즘으로 이 문제를 해결하였습니다. 1. 각 함수마다 두 개의 재귀 함수를 호출하였습니다. 해당 idx의 item을 선택한 경우, 선택하지 않은 경우를 나누어 호출하였습니다. 2. idx가 n까지 진행되었다면, 다음 두 가지의 경우로 결과를 초기화 해 주었습..
[BeakJoon 17471] 게리맨더링 안녕하세요. 오늘은 백준 17471 게리맨더링 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 저는 다음과 같은 순서로 이 문제를 해결하였습니다. 1. 정해진 N의 개수만큼 두 집단으로 분리 2. 분리되었다면 각각 연결되어 있는지 확인 3. 올바르게 분리 되었다면, 결과 갱신 1을 위해 저는 각 함수마다 두 개의 재귀 함수를 호출하여 주었습니다. 각각 group을 A, B라 한다면 현재 ..
[BeakJoon 2293] 동전 1 안녕하세요. 이번 포스팅에서는 저번 포스팅에 이어 동전 1을 풀어보도록 하겠습니다. (저번 포스팅) https://chanho0912.tistory.com/78?category=870985 [BeakJoon 2204] 동전 2 안녕하세요. 이번 포스팅에서는 백준 2204 동전 2 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,.. chanho0912.tistory.com 이번에 풀어 볼 문제는 https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k..
[BeakJoon 2204] 동전 2 안녕하세요. 이번 포스팅에서는 백준 2204 동전 2 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 동전의 조합을 사용하여 만들 수 있는 가치의 최솟값을 묻는 문제입니다. 이러한 류의 문제는 보통 Dynamic Programming으로 접근이 가능합니다. 2중 루프를 돌며, 첫 번째 루프에서는 동전의 가치를 두 번째 루프에서는 0부터 ..
BeakJoon 15591 MooTube (Silver) 안녕하세요. 이번 포스팅에서는 백준 15591번 MooTube 문제를 풀어보도록 하겠습니다. https://www.acmicpc.net/problem/15591 15591번: MooTube (Silver) 농부 존은 1번 동영상과 2번 동영상이 USADO 3을 가지고, 2번 동영상과 3번 동영상이 USADO 2를 가지고, 2번 동영상과 4번 동영상이 USADO 4를 가진다고 했다. 이것에 기반해서 1번 동영상과 3번 동영상의 www.acmicpc.net 해당 문제는 위 링크를 통해 확인하실 수 있습니다. 너무 쉽게 생각했다가... 낭패 본 문제입니다. 우선 그래프에 가중치가 존재해서, 당연히 다익스트라이겠거니 했는데, 그냥 BFS탐색으로 구현하시면 됩니다. 구현 로직은 시작점 출발 -> 연결된 노드중에 ..