본문 바로가기

코딩테스트90

[Swift][BFS] 백준 16948번 (데스 나이트) 요구능력 : BFS의 사용 코드설명 : 큐에 저장할 때 좌표와 이동횟수를 함께 저장해줬다. 좌표를 활용하는것이기 때문에 방문여부역시 2차원배열을 사용했다. isChecked는 이동할 수 없는경우에 -1을 출력하기위해 선언하였다. 처음에 큐에 r1, c1이 저장되어있는 arr[0]과 arr[1] 그리고 이동횟수인 0을 넣어준다. 방문처리를 해주고 큐에 있는걸 꺼내준다. 큐에서 꺼내준 r과 c가 r2(arr[2]), c2(arr[3])과 같다면 이동이 끝났으므로 이동횟수인 pop.1을 출력해준다. 그 후 아래에는 문제에 적혀있는데로 최소한의 조건을 만족하면이동할 수 있는 곳으로 이동할 수 있도록 처리해준다. 그리고 isChecked가 그대로 true이면 이동할 수 없는 경우이므로 -1을 출력해준다. 후기 :.. 2021. 12. 14.
[Swift][Math] 백준 6588번 (골드바흐의 추측) 요구능력 : 소수와 홀수에 대한 이해 코드설명 : 문제의 핵심 1. 두개의 홀수 2. 두개의 소수 처음에는 에라토스테네스의 체로 소수부분을 모두 구해준다.(동빈나님 블로그에 아주 잘 설명되어있습니다!) var aa = Array(repeating: 0, count: 1000001) for i in 2...1000000{ aa[i] = i } for i in 2...1000000{ if aa[i] == 0{continue} for j in stride(from: i + i, through: 1000000, by: i){ aa[j] = 0 } } 저는 isGoldBach로 두 홀수 소수의 합으로 나타낼 수 있는 경우에 isGoldBach를 true로 바꿔주고 이곳을 지나지 않는다면 false로 나타낼수 없는.. 2021. 11. 22.