BFS
-
프로그래머스 네트워크 자바(java) 풀이 Level 3 BFS/DFS 네트워크 문제 정리 컴퓨터A와 컴퓨터 B가 연결되있고, 컴퓨터 B와 컴퓨터 C가 연결되있으면 A와 C도 간접적으로 연결되 정보를 주고 받을 수 있다. 따라서 A,B,C는 같은 네트워크 상에 있다고 볼 수 있다. 각 컴퓨터는 0부터 n-1인 정수로 표현된다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]=1 이다. computers[i][i]는 항상 1이다. 문제 풀이 이 문제는 그래프로 바꿔서 생각하면 쉬운 문제입니다. level2에 놔도 될것 같네요 그래프 형태로 생각해서 bfs나 dfs를 이용해 탐색합니다. 저는 bfs를 이용했습니다. 방문하지 않은 경우 bfs를 이용해 탐색합니다. bfs로 이어져 있는..
[BFS] 프로그래머스 level3 네트워크 자바 풀이 (자세한 설명)프로그래머스 네트워크 자바(java) 풀이 Level 3 BFS/DFS 네트워크 문제 정리 컴퓨터A와 컴퓨터 B가 연결되있고, 컴퓨터 B와 컴퓨터 C가 연결되있으면 A와 C도 간접적으로 연결되 정보를 주고 받을 수 있다. 따라서 A,B,C는 같은 네트워크 상에 있다고 볼 수 있다. 각 컴퓨터는 0부터 n-1인 정수로 표현된다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]=1 이다. computers[i][i]는 항상 1이다. 문제 풀이 이 문제는 그래프로 바꿔서 생각하면 쉬운 문제입니다. level2에 놔도 될것 같네요 그래프 형태로 생각해서 bfs나 dfs를 이용해 탐색합니다. 저는 bfs를 이용했습니다. 방문하지 않은 경우 bfs를 이용해 탐색합니다. bfs로 이어져 있는..
2020.05.10 -
sw expert academy 5656 구슬 깨기 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 5656 구슬 깨기 문제정리 구슬을 쏘아 벽돌을 깨드리려 한다. 벽돌이 있는 공간의 크기는 WxH이다. 구슬은 좌우로만 움직일 수 있어서 항상 맨 위에 있는 벽돌만 깨트릴 수 있다. 벽돌은 숫자 1~9로 표현되며, 구슬이 명중한 벽돌은 상하좌우로(벽돌에 적힌 숫자-1)칸 만큼 같이 제거된다. 빈 공간이 있을 경우 벽돌은 밑으로 떨어지게 된다. N개의 벽돌을 떨어트려 최대한 많은 벽돌을 제거하려고 한다. 벽돌을 떨어트린 후 남은 벽돌의 개수를 구하여라. 문제 풀이 모든 경우를 따져주기 위해서 중복 순열을 구해야 합니다. N이 3인 경우 000 ~ 999 (W=10)까지 모두 시뮬..
[중복순열, BFS] SWEA 5656번 구슬 깨기 자바 풀이 (모의 sw 역량 테스트)sw expert academy 5656 구슬 깨기 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 5656 구슬 깨기 문제정리 구슬을 쏘아 벽돌을 깨드리려 한다. 벽돌이 있는 공간의 크기는 WxH이다. 구슬은 좌우로만 움직일 수 있어서 항상 맨 위에 있는 벽돌만 깨트릴 수 있다. 벽돌은 숫자 1~9로 표현되며, 구슬이 명중한 벽돌은 상하좌우로(벽돌에 적힌 숫자-1)칸 만큼 같이 제거된다. 빈 공간이 있을 경우 벽돌은 밑으로 떨어지게 된다. N개의 벽돌을 떨어트려 최대한 많은 벽돌을 제거하려고 한다. 벽돌을 떨어트린 후 남은 벽돌의 개수를 구하여라. 문제 풀이 모든 경우를 따져주기 위해서 중복 순열을 구해야 합니다. N이 3인 경우 000 ~ 999 (W=10)까지 모두 시뮬..
2020.05.07 -
BOJ 13460번 구슬 탈출2 문제 자바(java) 풀이 랭크 : 골드3 백준 13460번 구슬 탈출2 문제 정리 문제에 요구사항이 꽤 있으므로 잘 읽으시기 바랍니다!! 구슬 탈출: 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임 NxM 크기의 보드, 1x1칸으로 나누어져 있음. 빨간 구슬을 구멍을 통해 빼내야 하며, 파란 구슬이 구멍에 들어가면 안됨 왼쪽, 오른쪽, 위쪽, 아래쪽으로 보드를 기울일 수 있다. 빨간 구슬이 구멍에 빠지면 성공, 파란색이 빠지면 실패. 동시에 빠져도 실패 빨간 구슬과 파란 구슬은 동시에 같은 칸에 있을 수 없다. 더 이상 구슬이 움직이지 않을때까지 기울여본다. 보드의 상태가 주어질때 최소 몇 번 만에 빨간 구슬을 구멍을 통..
[브루트 포스, BFS] sw 역량 테스트 기출 :: 백준 13460번 구슬 탈출2BOJ 13460번 구슬 탈출2 문제 자바(java) 풀이 랭크 : 골드3 백준 13460번 구슬 탈출2 문제 정리 문제에 요구사항이 꽤 있으므로 잘 읽으시기 바랍니다!! 구슬 탈출: 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임 NxM 크기의 보드, 1x1칸으로 나누어져 있음. 빨간 구슬을 구멍을 통해 빼내야 하며, 파란 구슬이 구멍에 들어가면 안됨 왼쪽, 오른쪽, 위쪽, 아래쪽으로 보드를 기울일 수 있다. 빨간 구슬이 구멍에 빠지면 성공, 파란색이 빠지면 실패. 동시에 빠져도 실패 빨간 구슬과 파란 구슬은 동시에 같은 칸에 있을 수 없다. 더 이상 구슬이 움직이지 않을때까지 기울여본다. 보드의 상태가 주어질때 최소 몇 번 만에 빨간 구슬을 구멍을 통..
2020.04.28 -
BOJ 1941번 소문난 칠공주 자바(java) 풀이 랭크 : 골드3 백준 1941번 소문난 칠공주 문제 정리 학급은 5x5의 정사각형 형태로 자리가 배치되어있다. 학급이 두 파로 나뉘게 되었다. 이다솜파는 소문난 칠공주 체제를 결성하기로 하였다. 3.1 7명의 여학생들로 구성된다 3.2 7명의 자리는 서로 가로나 세로로 반드시 인접해 있어야 한다. 3.3 반드시 '이다솜파'의 학생들로만 구성될 필요는 없다. 3.4 그러나 '이다솜파'의 학생은 적어도 4명 이상 반드시 포함되어 있어야 한다. 자리 배치도가 주어졌을 때, 소문난 칠공주를 결성할 수 있는 모든 경우의 수를 구하여라. 문제 풀이 모든 경우를 따져주어야 합니다. 자세한 사항은 주석을 통해 달아두었습니다! 로직은 아래..
[조합, BFS] 백준 1941번 소문난 칠공주 자바(java) 풀이BOJ 1941번 소문난 칠공주 자바(java) 풀이 랭크 : 골드3 백준 1941번 소문난 칠공주 문제 정리 학급은 5x5의 정사각형 형태로 자리가 배치되어있다. 학급이 두 파로 나뉘게 되었다. 이다솜파는 소문난 칠공주 체제를 결성하기로 하였다. 3.1 7명의 여학생들로 구성된다 3.2 7명의 자리는 서로 가로나 세로로 반드시 인접해 있어야 한다. 3.3 반드시 '이다솜파'의 학생들로만 구성될 필요는 없다. 3.4 그러나 '이다솜파'의 학생은 적어도 4명 이상 반드시 포함되어 있어야 한다. 자리 배치도가 주어졌을 때, 소문난 칠공주를 결성할 수 있는 모든 경우의 수를 구하여라. 문제 풀이 모든 경우를 따져주어야 합니다. 자세한 사항은 주석을 통해 달아두었습니다! 로직은 아래..
2020.04.07 -
BOJ 12851번 숨바꼭질2 자바(java) 풀이 랭크 : 골드5 백준 12851번 숨바꼭질2 문제 정리 수빈이는 현재 점 N에 있다. 동생은 점 K에 있다. 수빈이는 1초 후에 N-1, N+1, Nx2의 위치로 이동할 수 있다. 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇초 후 인가?? 가장 빠른 방법의 수도 찾아서 출력해라. 문제 풀이 bfs를 이용하면 풀 수 있는 문제입니다. 원래 bfs를 구현하게 되면 보통 최적화를 위해서 queue에 넣고 바로 방문처리를 합니다. 하지만 그것은 최적화 즉, 넣었다 뺐다 반복하지 않도록 하는 것입니다. 이 문제는 그렇게 해서는 풀 수 없습니다. 가능한 모든 개수를 세야하기 때문입니다. 반례 예를들어 1 4의 경우 (1+1)x2 (1x2)x2 위와 같이 두..
[BFS] 백준 12851번 숨바꼭질2 자바(java) 풀이BOJ 12851번 숨바꼭질2 자바(java) 풀이 랭크 : 골드5 백준 12851번 숨바꼭질2 문제 정리 수빈이는 현재 점 N에 있다. 동생은 점 K에 있다. 수빈이는 1초 후에 N-1, N+1, Nx2의 위치로 이동할 수 있다. 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇초 후 인가?? 가장 빠른 방법의 수도 찾아서 출력해라. 문제 풀이 bfs를 이용하면 풀 수 있는 문제입니다. 원래 bfs를 구현하게 되면 보통 최적화를 위해서 queue에 넣고 바로 방문처리를 합니다. 하지만 그것은 최적화 즉, 넣었다 뺐다 반복하지 않도록 하는 것입니다. 이 문제는 그렇게 해서는 풀 수 없습니다. 가능한 모든 개수를 세야하기 때문입니다. 반례 예를들어 1 4의 경우 (1+1)x2 (1x2)x2 위와 같이 두..
2020.04.04 -
BOJ 18809번 Gaaaaaaaaaarden 문제 자바(java) 풀이 난이도: 골드1 BOJ 18809번 Gaaaaaaaaaarden 문제정리 빨간색, 초록색 배양액을 이용해 꽃을 피운다. 배양액은 매 초마다 이전에 배양액이 도달한 적이 없는 인접한 땅으로 퍼져나간다. 초록색 배양액과 빨간색 배양액이 동일한 시간에 도달한 경우 땅에서 꽃이 핀다. 꽃이 핀 땅에서는 배양액이 사려저 더 이상 배양액이 퍼지지 않는다. 모든 배양액은 서로 다른 곳에 뿌린다. 꽃의 최대 개수를 구하여라 문제 풀이 배양액을 놓을 수 있는 위치가 여러군데 있습니다. 그 중에서 놓을 곳을 정해야 합니다. 또한 그 위치에 어떠한 색의 배양액을 놓을지 정해야합니다. 그래서 처음에 배양액을 놓을 곳의 순열을 구하고 배양액의 순열을 또..
[BFS, 순열] 백준 18809번 Gaaaaaaaaaarden 자바(java) 풀이BOJ 18809번 Gaaaaaaaaaarden 문제 자바(java) 풀이 난이도: 골드1 BOJ 18809번 Gaaaaaaaaaarden 문제정리 빨간색, 초록색 배양액을 이용해 꽃을 피운다. 배양액은 매 초마다 이전에 배양액이 도달한 적이 없는 인접한 땅으로 퍼져나간다. 초록색 배양액과 빨간색 배양액이 동일한 시간에 도달한 경우 땅에서 꽃이 핀다. 꽃이 핀 땅에서는 배양액이 사려저 더 이상 배양액이 퍼지지 않는다. 모든 배양액은 서로 다른 곳에 뿌린다. 꽃의 최대 개수를 구하여라 문제 풀이 배양액을 놓을 수 있는 위치가 여러군데 있습니다. 그 중에서 놓을 곳을 정해야 합니다. 또한 그 위치에 어떠한 색의 배양액을 놓을지 정해야합니다. 그래서 처음에 배양액을 놓을 곳의 순열을 구하고 배양액의 순열을 또..
2020.04.03