본문 바로가기

로봇청소기2

[Swift][구현] 백준 14503번 (로봇청소기) 요구능력 구현 문제풀이 1) 그냥 입력받는 부분이다. let nm = readLine()!.split(separator: " ").map{Int(String($0))!} let n = nm[0] let m = nm[1] let rcd = readLine()!.split(separator: " ").map{Int(String($0))!} let r = rcd[0] let c = rcd[1] let d = rcd[2] var arr = [[Int]]() for _ in 0.. 서의경우는 따로 처리를 해줘야한다. ex) 현재 동쪽을 바라보고 있는 상태로 다음 칸으로 이동했다면 d = 1이다. 그렇다면 우리가 왼쪽을 바라봐야 하니까 d = 0이된다. 그럼 우리는 동쪽에서 왼쪽인 북쪽으로 이동을 해야된다는 것이다.. 2022. 4. 20.
[Swift][BFS][시간초과] 백준 4991번 (로봇 청소기) 요구능력 : BFS 코드설명 : 내가 생각하는 이 문제에서의 핵심 1) 같은 칸 여러번 방문 가능 2) 인접한 칸 1) 같은 칸 여러번 방문가능 이걸보고 처음에 그냥 방문처리없이 BFS를 쭉 돌렸는데 절대 답이 안나왔다. 이유는 아래 그림에서 빨간색으로 가는경우와 파란색으로 가는경우가 있는데, 그냥 BFS를 돌리면 이런 경우가 구분이 가지 않았다. 그래서 생각을 해본 결과 계속해서 가장 가까운곳의 더러운곳을 먼저 방문하면 결국 가장 적게이동하고 모든 더러운곳을 방문하는게된다. 그래서 BFS로 가장 가까운 더러운곳을 찾아서 거기까지 이동한 횟수를 전역변수 cnt에 더하는 작업을 더러운칸이 존재한다면 반복했다. 아, 그리고 가장 가까운곳 찾을 때 각각의 경우에 방문처리를 다르게 해줘야한다. 이유는 로봇청소기.. 2022. 2. 3.