본문 바로가기

알고리즘 풀이41

백준 16235 나무 재테크 - 삼성 SW 역량 테스트 기출 백준 16235 나무 재테크 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 각 칸에는 여러 개의 나무가 있을 수 있고, 양분 정보도 포함하고 있어야 한다. 2. 따라서 나무 클래스(Tree)를 만들고, 나무 리스트와 양분 정보를 포함하는 땅 클래스(Tile)를 만들었다. 3. 봄에서 나이가 어린순으로 양분을 먹는다 했으므로, 나무 리스트를 나.. 2021. 9. 4.
백준 2468 안전 영역 백준 2468 안전 영역 1. 문제 링크 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 내린 비의 양에 따라 각 케이스 별로 안전 영역의 개수를 세야 한다. 2. 코딩할 때는, input 값 중 최대 높은 숫자부터 하나씩 줄여갔지만 현재 시점에선 그럴 필요 없다고 판단한다. . 내린 비의 높이를 0부터 차례대로 증가시키며 안전 영역의 개수를 세고 개수가 0일 때 끝내면 되었을 것 같다. 3. 내린 비의 높이 별로.. 2021. 9. 3.
백준 2178 미로 탐색 백준 2178 미로 탐색 1. 문제 링크 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 2차원 배열로 생각했을 때, 좌측 끝 상단에서 우측 끝 하단으로 이동한다. 2. 따라서 (0, 0)에서 (N-1, M-1)로 이동한 것으로 구현했다. 3. 지나야 하는 칸의 개수를 세기 위해 방문 배열은 int로 구현했다. 4. 현재 칸의 가중치는 이전 칸의 가중치의 + 1로 기록한다. 5. 가중치가 기록되어있는 visited 배열 중, visited.. 2021. 9. 3.
백준 4179 불! 백준 4179 불! 1. 문제 링크 https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. Input에서 지훈이의 위치와 불의 위치를 각각 jQ, fQ에 저장한다. --> BFS를 하기 위함 2. 한 턴마다 지훈이와 불이 움직인다. 3. 지훈이는 jMove 불은 fireMove로 각각 구현했다. . 나는 지훈이를 먼저 움직이고 그다음에 불을 확산시켰다. . n+1번째 턴에 지훈이가 있을 수 있는 위치.. 2021. 9. 3.
백준 2589 보물섬 백준 2589 보물섬 1. 문제 링크 https://www.acmicpc.net/problem/2589 2589번: 보물섬 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 결국 가장 멀리 떨어진 지점의 이동시간을 구하는 문제이다. 2. 지도가 공백 문자 없이 문자열로 들어오기 때문에 문자열로 받은 후 .charAt(index) 를 사용하여 배열을 구성한다. 3. 이차원 배열을 순회하면서 'L'일 때 방문할 수 있는 모든 곳을 방문하며 가중치(weight)를 기록한다. 4. 한 지점으로부터의 방문.. 2021. 9. 2.