문제설명입력 & 출력나의 풀이먼저 이번 문제는 배추밭의 가로, 세로가 주어졌을 때 배추가 있는 부분은 1 없는 부분은 0이며, 상하좌우로 이동하며 인접한 배추가 있으면 인접 배추로 이동할 수 있는 지렁이가 몇 마리 필요한 지 알아내는 문제입니다. 먼저 계속해서 호출되는 변수들을 가독성이 좋도록 전역변수로 선언합니다. 선언하는 전역변수에는 방문 여부를 저장할 visited배열, 배추밭의 지도 map, 입력으로 받을 변수들과 지렁이가 이동할 수 있는 배열을 초기화해 줍니다. "상하좌우"로 이동할 수 있다고 정의할 것이기 때문에 x축 이동을 하는 dx는 좌, 우 y축을 이동을 하는 dy는 상, 하 DFS(깊이 우선 탐색)을 이용하여 배추 군집을 찾습니다. 현재 위치를 방문 처리하고, 상하좌우로 연결된 배추를 ..
문제설명입력 & 출력나의 풀이먼저 이번 문제는 정사각형 N(지도의 크기)이 주어질 때 집이 있는 곳은 1 없는 곳은 0입니다. 이때 연결되어 있는 집을 단지로 구분하여 단지의 수와 크기를 출력하는 문제입니다. 먼저 가독성을 높이기위하여 계속 사용되는 변수들을 전역 변수로 선언해주고, 단지가 몇 개인지 모르기 때문에 동적으로 크기를 조절할 수 있도록 ArrayList를 초기화해줍니다. 또한 상하좌우로 이동할 것이기 때문에 dx와 dy를 초기화해 줍니다. 주석을 달아놔서 따로 설명은 필요 없을 것 같습니다. 먼저 DFS를 동작할 함수를 선언합니다. 현재 위치를 방문했음을 표시하기 위해 해당 위치를 `true`로 설정하고, 단지 내 집의 수를 나타내는 `count`를 증가시킵니다. 그다음, 상하좌우로..
문제설명입력 & 출력나의 풀이 이번 문제의 주요 목표는 '-'와 '|'로 이루어진 바닥 장식의 개수를 세는 것입니다. 이를 위해 DFS를 사용하여 각 장식의 연결된 부분을 방문하고, 이미 방문한 부분은 다시 방문하지 않도록 합니다. 먼저 코드의 가독성을 위해서 아래의 변수 및 배열을 전역 변수로 선언해 줍니다.방바닥의 크기인 N과 M 방문 여부를 저장할 visitied 배열바닥 장식을 저장할 floor 배열 빠른 입력을 위해서 BufferedReader클래스를 사용하여 입력을 받아주고, N과 M을 공백을 기준으로 분리하여 token에 저장합니다. 입력받은 바닥의 가로 N 세로 M의 크기만큼 순회를 하면서, charAt() 메서드를 사용하여 각 line의 요소를 가져와 floor배열에 저장을 합니다. ..
문제설명입력 & 출력나의 풀이 이번 문제는 각 학생이 좋아하는 학생의 학생 이름 목록이 공백으로 구분된 문자열로 주어질 때 좋아하는 사람을 체크한 후 인기도가 높은 학생부터 낮은 학생 순으로 출력(내림차순)하고, 인기도가 같은 경우 학생 이름 기준으로 오름차순으로 출력하는 문제입니다. 먼저 빠른 입력을 위해 BufferedReader클래스를 사용하여 입력을 받아주고, StringTokenizer를 사용하여 공백을 기준으로 분리해 줍니다. 첫째 줄에 주어진 학생을 map에 넣어주고, 각 학생들이 좋아하는 학생의 정보를 토큰으로 받아 while문에서 token이 더 이상 토큰을 가지고 있지 않을 때까지 반복합니다. token.hasMoreTokens() 메서드▪️ token에 다음 토큰이 있는지 여부를 확인..