본문 바로가기

백준 알고리즘21

백준 4963 섬의 개수 백준 4963 섬의 개수 1. 문제 링크 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. Input으로 받은 2차원 배열을 순회하면서 1로 되어 있는 위치에서 BFS를 수행한다. 2. BFS를 수행한 카운트를 출력한다. 3. 대각선도 접근할 수 있는 것을 간과하면 안 된다. 3. 코드 import java.io.BufferedReader; import java.io.IOException; import .. 2021. 9. 6.
백준 14502 연구소 - 삼성 SW 역량 테스트 기출 백준 14502 연구소 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 이 문제는 벽 3개를 세우는 케이스마다 각각 조사하여 안전영역의 최댓값을 계속 갱신해야 한다. 2. Input으로 연구소 정보에 대한 배열을 받을 때, 두 가지 배열을 사용한다. . board : 각 케이스별로 BFS를 수행할 때 사용할 연구소 정보 . copyBoard : 각 케이스가 끝난 후 boa.. 2021. 9. 5.
백준 2573 빙산 백준 2573 빙산 1. 문제 링크 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 1년이 지날 때마다 바다와 맞닿은 빙산이 최대 4까지 그 크기가 줄어든다. 2. 이때, 현재의 맵에 바로 반영하는 게 아니라, 임시 맵(copyBoard)을 만들어 다음 해의 빙산의 크기를 기록한다. 3. 나누는 이유는 현재 맵에 반영할 경우, 원래보다 맞닿는 면이 많아져 빙산이 더 녹게 계산될 수 있기 때문이다. 4... 2021. 9. 5.
백준 20055 컨베이어 벨트 위의 로봇 - 삼성 SW 역량 테스트 기출 백준 20055 컨베이어 벨트 위의 로봇 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 문제에서는 2열의 컨베이어 벨트로 표시했으나, 그럴 필요 없고 ArrayList로 뒤에서 삭제 앞으로 삽입을 하면 된다. 2. 컨베이어의 각 칸에는 내구도와 로봇의 존재 여부를 표시해야 하므로 Tile 클래스를 선언했다. 3. 나머지는 문제에서 요구하.. 2021. 9. 4.
백준 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.