본문 바로가기

Problem/BFS

[백준알고리즘] 15653번 구슬 탈출4 https://www.acmicpc.net/problem/15653 구슬 탈출2 에서 만 제외하면 된다!구슬 탈출2 푼 거는 ==> https://j2wooooo.tistory.com/44 이곳에서 확인!_! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113#include#include#includeusing namespace std; int N..
[백준알고리즘] 15644번 구슬 탈출3 https://www.acmicpc.net/problem/15644 구슬 탈출2 에서 공이 이동한 방향의 집합인 string을 저장하는 queue를 추가하여 풀었다!직전까지의 이동한 방향에서 현재 이동한 방향을 추가하여 balldirect 라는 이름의 queue에 넣고 빼는 식으로 구현한다! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114..
[백준알고리즘] 13459번 구슬 탈출 BOJ 13459번 :: 구슬 탈출 문제 링크 : https://www.acmicpc.net/problem/13459 앞서 풀었던 13460번 구슬 탈출 2 와 같다고 볼 수 있는 문제이다! 나의 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115#include#include#includeusing namespace std; int..
[백준알고리즘] 13460번 구슬 탈출2 BOJ 13460번 :: 구슬 탈출2 문제 링크 : https://www.acmicpc.net/problem/13460 ㅎㅎ.. case문을 잘못 써서 이 부분에서 좀 오래 걸렸다..바보ㅠㅠ 구슬 탈출2 문제는 모든 경우를 다 해봐야 풀 수 있는 것이 아니라 최소 거리를 구하는 것이기 때문에 bfs를 통해 풀면 된다! 처음에 나는 그 방향으로 갈 수 있을 때까지 최대한 이동하는 것을..for(현재 위치; 보드의 끝-1 까지; 그 방향으로 이동하면서) 위와 같이 짰었는데모든 경우마다 for문을 다 만들어줘야 해서 가시적이지 못하고 너무 지저분했다 ㅠㅠ 그래서 다른 사람들이 자주 사용하는 방법을 참고하여 while문으로 바꾸니 너무너무 코드가 보기 좋아지고 간편해졌다! 같은 위치일 때 좌표 갱신해 주는 것도..
[백준알고리즘] 9328번 열쇠 https://www.acmicpc.net/problem/9328 퓽퓽퓽 코드가 아주 썩 좋은 것 같진 않지만 풀어서 기분 좋당*^^* bfs를 이용하는 문제인데! 들어갈 수 없는 문을 저장해놓는 queue가 하나 더 필요하다는 것이 중요하다!! 최단경로를 찾는 것이 아니기 때문에 이렇게 풀 수 있는 문제이닷. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101..
[백준알고리즘] 14442번 벽 부수고 이동하기 2 https://www.acmicpc.net/problem/14442 2206번 벽부수고 이동하기를 짜고 바로 이 문제를 푸니까 같은 방법으로 빠르게 짤 수 있었다. https://j2wooooo.tistory.com/40 벽부수고 이동하기 코드와 별반 다르지 않다. 코드 3줄 정도 바뀐듯? 이제 bfs를 이용하여 조건에 따라 탐색해 나가는 방법은 3차원 visited 배열 (+ 비트마스킹)으로 풀어야 한다는 것을!! 명확하게 머릿속에 집어넣은 것 같다!!!! 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374..
[백준알고리즘] 2206번 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 어제 푼 문제랑 유사한 형태!풀이가 거의 비슷하기 때문에 자세하게 설명한 https://j2wooooo.tistory.com/39 이 풀이를 참고하기를!!! bfs로 푸는 방식! 벽을 부쉈는지 여부를 넣어주어야 하기 때문에 visited를 3차원 배열로 만들어야 한다! **내가 실수했던 부분**1) string 넣을 때, 문제 제대로 안 보고 string으로 안 넣었었다..ㅠ2) string 넣을 때, 배열은 (1,1)부터 string은 [0]부터 넣어주었어야 했는데 이 부분을 간과했었다...3) 값에 따른 조건문 처리할 때, 조건문의 순서를 다르게 해서 원하는 것과 다른 상황이 도출되었다.. 앞으로 신경써서 코딩하자!!!!!!!!!!!!..
[백준알고리즘] 1194번 달이 차오른다, 가자 https://www.acmicpc.net/problem/1194 한달 전에 풀었었다가 실패하고 다시 도전하였으나 또 실패..ㅠ 난 아직 문제에 맞는 효과적인 알고리즘을 찾아내는 것이 잘 안되는 것 같다.. 1. key를 줍는다 ==> | 연산2. 문에 매칭되는 key가 있는지 확인한다 ==> & 연산3. key가 갱신되었을 때는 왔던 길을 다시 갈 수 있다 ==> visited[][][]에 3차원으로 x,y,key값 넣기 나는 1번 2번까지는 했는데 3번을 하기 위해서 3차원 배열을 사용할 생각을 못하고 이전이랑 키값이 바뀌었을 때 변수를 두고 하려다 보니이거야 원,,, 할 수가 없었다ㅋㅋㅋㅋㅋㅋㅋㅋ 그래서 결국 다른 사람들이 풀이한 것들을 참고하여 문제를 풀 수 있었다 ㅠㅠ bfs를 이용하여 미로를 ..