본문 바로가기

너비 우선 탐색41

[자바] 백준 1326 - 폴짝폴짝 (java) 목차 문제 : boj1326 필요 알고리즘 BFS (너비 우선 탐색) 각 징검다리에서 이동할 수 있는 모든 곳으로 이동하며 BFS를 진행해서 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 BFS를 모른다면 'BFS 알고리즘 (너비 우선 탐색)' 글을 참고해보자. 일단 맞왜틀을 외치고 있다면, 나처럼 국어 이슈일 수 있다. "징검다리에 쓰여 있는 수의 배수만큼 떨어져 있는 곳" 이 문장에 대해 난 당연히 배수니깐.. 2023. 3. 9.
[자바] 백준 18112 - 이진수 게임 (java) 목차 문제 : boj18112 필요 알고리즘 BFS (너비우선탐색) 시작 이진수부터 목표 이진수까지 문제에서 제시된 동작들을 통해 순회하며 BFS를 진행하는 문제이다. 비트마스킹 애초에 문제 자체가 비트연산을 사용하는걸 전제로 만들어진 듯 하다. 안 쓸 이유가 없다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 BFS를 모른다면 'BFS 알고리즘 (너비 우선 탐색)' 글을 먼저 읽어보자. 이 글에 제시된 동작들은 모두 비트.. 2023. 3. 7.
[자바] 백준 1194 - 달이 차오른다, 가자. (java) 목차 문제 : boj1194 필요 알고리즘 BFS (너비우선 탐색) 최단거리를 찾는 문제로 BFS로 풀 수 있다. 비트마스킹 BFS 진행 시 모든 경우에 대해 방문체크가 가능해야한다. 이걸 위해 비트마스킹을 사용한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 BFS를 모른다면 우선 'BFS 알고리즘 (너비 우선 탐색)'을 보자. 특히 이 문제를 풀기 위해서는 '방문체크에 대해 좀 더 써봄' 부분에 적어놓은걸 이해해야 한.. 2023. 3. 6.
[자바] 백준 27453 - 귀엽기만 한 게 아닌 한별 양 (java) 문제 : boj27453 필요 알고리즘 개념 너비 우선 탐색 (bfs) BFS긴 한데 상당히 난이도가 높은 BFS인 것 같다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 BFS 추천 문제이다. 문제가 좋은 것 같다. BFS에 대해 모른다면 'BFS 알고리즘 (너비 우선 탐색) - 배열 BFS, 그래프 BFS' 글을 참고해보자. 특히 '방문체크에 대해 좀 더 써봄' 부분이 필요하다. BFS로 풀려면 모든 경우의 수를 파악해.. 2023. 2. 24.
[자바] 백준 14940 - 쉬운 최단거리 (java) 문제 : boj14940 필요 알고리즘 개념 그래프, 너비 우선 탐색 (BFS) 그래프에 대한 약간의 규칙을 이해할 수 있어야 한다. 그것만 이해하면 그냥 BFS 한방에 해결 가능하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 모든 지점에서 목표지점까지의 최단 거리는 사실, 목표지점에서 모든 지점으로의 최단 거리와 같다. 사실 간선이 양방향이니 당연한 부분이다. 이것만 알면 그냥 목표지점부터 BFS를 한방 돌려서 모든 .. 2023. 2. 14.
[자바] 백준 14395 - 4연산 (java) 문제 : boj14395 필요 알고리즘 개념 너비 우선 탐색 (bfs) BFS로 풀 수 있다! ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 BFS를 모른다면 'BFS 알고리즘 (너비 우선 탐색)' 글을 참고해보자. 우선 걸러낼 수 있는걸 먼저 생각해보자. 1. s = s - s; 연산의 경우 무조건 0이 되며, 이후 *, +, / 뭘 해도 0 이외로 벗어날 수 없다. 근데 t는 1 이상으로 입력이 주어진다. 따라서 그냥 버.. 2023. 2. 7.
[자바] 백준 11967 - 불켜기 (java) 문제 : boj11967 필요 알고리즘 개념 BFS, DFS 등의 그래프 탐색 알고리즘 그래프 탐색을 통해 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 BFS를 모른다면 'BFS 알고리즘 (너비 우선 탐색)' 글을 참고하자. 로직을 정확히 세워서 그래프 탐색을 진행하면 풀 수 있다. 글로 설명하면 아래와 같다. 우선 각 방의 상태를 다음과 같이 설정하였다. - 미방문 : 0 - 불 켜져있음 : 1 - 이.. 2023. 2. 5.
[자바] 백준 9205 - 맥주 마시면서 걸어가기 (java) 문제 : boj9205 필요 알고리즘 개념 너비 우선 탐색 (bfs), 깊이 우선 탐색(dfs), 분리 집합(disjoint set) 중 하나 데이터를 원하는 형태로 바꾸는 사전작업이 좀 필요하다. 그것만 하면 그냥 가중치가 동일한 정점과 간선이 주어질 때 특정 지점부터 특정 지점까지 도달 가능하는지만 판단하면 되므로, bfs나 dfs나 분리집합이나 아무거나 써서 찾아주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이.. 2023. 2. 2.
[자바] 백준 16768 - Mooyo Mooyo (java) 문제 : boj16768 필요 알고리즘 개념 BFS (너비 우선 탐색) 등의 그래프탐색, 시뮬레이션 연결된 뿌요들을 파악하기 위해 BFS, DFS와 같은 그래프 탐색이 필요하다. 그 외에는 그냥 제시된대로 시뮬레이션을 돌려주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 그래프 탐색을 모른다면 BFS 글을 봐보자. 백준 11559 - Puyo Puyo의 아주 약간 상위호환이다. 개념은 완전히 동일하다.그러니 이 문제.. 2023. 1. 16.
[자바] 백준 11559 - Puyo Puyo (java) 문제 : boj11559 필요 알고리즘 개념 BFS (너비 우선 탐색) 등의 그래프탐색, 시뮬레이션 연결된 뿌요들을 파악하기 위해 BFS, DFS와 같은 그래프 탐색이 필요하다. 그 외에는 그냥 제시된대로 시뮬레이션을 돌려주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 그래프 탐색을 모른다면 BFS 글을 봐보자. 시뮬레이션으로 생각해본다면 다음의 과정을 진행하면 된다. 1. 연결된 4개이상의 뿌요들을 없앤다. 없앨.. 2023. 1. 16.