Algorithm236 [Swift][BFS] 백준 1600번 (말이 되고픈 원숭이) 요구능력 BFS 문제풀이 기본적인 BFS에서 우리는 최소의 이동횟수를 구해야한다. 어느부분에서 점프했을때 최소의 이동거리인지 알 수 있는 방법이 없기 때문에 BFS를 돌아주면서 방문하는 곳마다 점프하는 경우를 큐에 넣어준다. 이때 점프횟수가 남아있을 때만 점프를 해준다. 이 문제에서 가장 핵심포인트는 3차원 배열을 사용해서 한 지점에 도착했을 때 몇번의 점프가 남았는지를 적어주는 것이다. 무슨 말이냐면 만약 내가 점프를 한번도안하고 (0,0)부터 (x,y)까지 이동했을 경우가 있고, 점프를 한번하고 (x,y)까지 이동했을 경우가 있다고 가정해보자. 근데 같이 방문처리를 해줘버리면, 이게 겹치게된다. 따로 관리하기위해서 3차원으로 방문처리를 해주게된것이다. 그리고 도착지점에 도착했을 때 바로 break를 .. 2022. 4. 8. [Python][구현] 백준 14890번 (경사로) 요구능력 구현 문제풀이 이 문제는 길에다 경사로를 만들고 길을 통과할 수 있는지를 묻는 문제이다. 구현을 깔끔하게 짜려면 큰 조건 -> 작은 조건을 잘 구상해야하는것 같다. 내 생각의 흐름대로 정리해보면 내가 하나의 길에서 출발한다고 생각해보자. 그럼 다음번 칸 갈 수 있느냐 없느냐가 이 문제의 관건이다. 조건을 다 읽어보면 다음번 칸을 갈 때 칸의 높이가 같으면 그냥 지나갈 수 있다. 하지만, 칸의 높이가 다르다면 그냥 지나갈 수 없다. 이 때, 생각할 수 있는게 칸의 높이가 계속 같으면 그 길은 통과가 된다는 것이다. 그렇다면 따로 처리해줄 것은 없는것이다. 하지만 만약, 현재 칸의 높이와 다음번 칸의 높이가 다를경우에는 칸의 차이가 1이어야하고 그 이외의 경우에는 다음 칸을 진행할 수 없다. if .. 2022. 3. 30. [Python][구현] 백준 14499번 (주사위 굴리기) 요구능력 문제이해 및 구현 문제풀이 코드가 두서없이 복잡하지만 빡구현의 증거이니 이해부탁드립니다.. 문제를 이해하고 보면 주사위는 4 * 3의 배열로 이루어져 있다는 것을 알 수 있다. 주사위는 아래와 같은 모양으로 생각하고 풀었다. 주사위의 모양을 계속 이 모양을 유지하면서 풀었는데, 모양을 바꾼다면 엄청 복잡해질것이다. 모양을 유지한다는 것은 주사위가 굴러가더라도 주사위의 아래는 계속해서 dice[3][1]을 유지한것이다. for문을 통해서 명령을 하나씩 돌리면서, 북쪽으로 이동하면 주사위를 북쪽방향으로 굴리기 때문에 아래 -> 앞 -> 위 -> 뒤로 주사위의 배열순서를 바꿔주었다. 남쪽으로 이동하면 주사위를 남쪽방향으로 굴리기 때문에 뒤 -> 위 -> 앞 -> 아래로 주사위의 배열순서를 바꿔주었다... 2022. 3. 29. [Swift][DFS] 백준 16964번 (DFS 스페셜 저지) 요구능력 DFS와 정렬 문제풀이 https://sapjilkingios.tistory.com/entry/SwiftBFS-%EB%B0%B1%EC%A4%80-16940%EB%B2%88-BFS-%EC%8A%A4%ED%8E%98%EC%85%9C-%EC%A0%80%EC%A7%80 [Swift][BFS] 백준 16940번 (BFS 스페셜 저지) 요구능력 BFS와 정렬 문제설명 일반적인 BFS문제에 주어진 방문순서대로 방문이 가능한지를 판별하는 문제이다. 간선정보가 주어진다면 인접리스트를 고려해봐야한다. 그래서 인접리스트를 구 sapjilkingios.tistory.com 위의 BFS스페셜저지와 동일한 문제입니다. 바뀌는점은 BFS -> DFS인것 밖에 없습니다. 어려운것없이 1번노드를 먼저방문하도록 dfs(1)로 .. 2022. 3. 26. 이전 1 ··· 10 11 12 13 14 15 16 ··· 59 다음