본문 바로가기

java32

백준 2573번 빙산(JAVA) - BFS/DFS 백준 2573번 빙산 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제설명 - 빙산들의 정보가 주어지고 1년 마다 빙하가 녹는다. - 빙산은 자기의 위치를 기준으로 동서남북 사방의 방향의 0(바다)의 개수 만큼 높이가 줄어든다. - 동서남북 방향으로 붙어있는 칸들은 연결되어 있다고 판단하고, 시간이 지남에따라 빙산이 녹아서 없어질 때 빙산의 영역(덩어리의 개수)가 2개 이상이 되는 최초의 시간을 구하는 문제. (단 2덩어리 이상이 만들.. 2023. 5. 2.
백준 3184번 양(JAVA) - DFS 백준 3184번 https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 문제설명 마당의 정보가 주어진다. '.'(점) : 빈필드 # : 울타리 'o' : 양 'v' : 늑대 필드에서는 수평/수직으로만 이동가능하며 울타리를 지나지 않고 이동할 수 있다면 같은 영역이라고 본다. 한 영역안에서 양의 수가 많으면 늑대와 싸워 이길수 있고 쫓아낸다. 그렇지 않다면 양이 잡아먹힌다. 살아남은 양과 늑대의 수를 출력 접근 DFS로 접근 코드 impor.. 2023. 5. 1.
백준 4963번 섬의 개수(JAVA) - DFS 백준 4963번 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제설명 섬과 바다 지도가 주어지는데, 섬의 개수를 세는 문제 - 가로, 세로, 대각선으로 연결되어 있으면 걸어갈 수 있다. - 지도의 너비 w와 h를 입력받는다. (행/렬 구분 주심) - w,h가 0 0 이 들어오기 전까지 계속 반복하며 0 0 이 들어오면 종료. 접근 DFS로 접근 (상하좌우, 대각선까지 정의) 코드 import java.io.BufferedReader; .. 2023. 5. 1.
(LEVEL 2)프로그래머스 - 연속된 부분 수열의 합 (JAVA) 투포인터 문제 입출력 예 접근방법 1. 투포인터를 사용해서 풀이 풀이. 1. answer를 길이 2만큼 선언해준다. 2. 투포인터로 돌아갈 lt, rt를 선언하고 k와 비교할 sum을 선언해준다. 3. 여기서 문제를 제대로 안읽어서 처음에 통과를 못했는데, 답이 여러개 일 때 길이가 짧은수열이 우선순위이고 길이가 동일한 길이의 수열이 여러개일 경우 가장 앞쪽(시작 인덱스가 작은 쪽) 수열을 찾는다.(이 조건을 만족시키기위해 수열의 길이를 큰값으로 선언) 4. rt를 sequence의 길이만큼 반복하며 더해주고, 수열의 합이 같으면서, 정답의 길이가 더 작을 때 수열의 인덱스를 정답으로 갱신시켜주고 길이 또한 갱신시켜준다. 5. 만약 rt를 더해준 값이 sum보다 크다면 같거나 작아질 때 까지 lt를 증가시키며 해.. 2023. 4. 17.