Algorithm236 [Swift][투 포인터] 백준 2230번 (수 고르기) 요구능력 투 포인터, 정렬 문제풀이 포인터가 가리키고있는 위치의 값끼리 차를 구하면된다. 중요한점은 정렬을 해주지 않으면 투포인터가 성립되지 않는다. 그리고 diff >= m이 되면 우리는 최소의 차이를 구하는 것이므로 정렬되어있기 때문에 뒤로갈수록 차이는 더 커져서 볼 필요없이 break해줬다. 후기 투포인터의 응용(?)문제 코드 let nm = readLine()!.split(separator: " ").map{Int(String($0))!} let n = nm[0] let m = nm[1] var arr = [Int]() for _ in 0.. 2022. 5. 20. [Swift][구현] 백준 15662 (톱니바퀴(2)) 요구능력 구현, 큐 문제풀이 변경되기 이전의 톱니바퀴끼리 비교를 해야하기 때문에 변경되기 이전의 톱니바퀴들을 미리 저장해둔다.(beforeLoc) 처음에 재귀로 접근했다가 이상하게 빠져버려서 시간을 많이 낭비했다가 포기하고 큐로 풀게되었다. 큐로 접근해서 방문처리를 해주면 똑같은 톱니바퀴를 돌지않고, 딱 돌아야하는 톱니바퀴만 돌 수 있다. 방문처리를 해주는 이유는 예를 들어 1번부터 출발해서 4번까지 가는데 중간에 2번에서 1번과 극이 다르다면 조건을 충족하기 때문에 1번을 또 돌릴 수도 있는 경우를 방지하기 위해서이다. 재귀로도 풀리긴 하지만, 큐로 푸는것이 효율적인 것 같다. 후기 변경되기 이전의 값을 쓰는 문제에서는 변경되기 이전의 값을 먼저 저장해놓자! 코드 import Foundation let.. 2022. 5. 18. [Swift][구현] 백준 17406번 (배열 돌리기 4) 요구능력 구현 문제풀이 핵심은 순열을 이용해서 연산순서를 정해줘야한다는것이다. 배열돌리는 부분은 급하게 순열로 변경하다보니 코드가 더러워졌다.. 배열돌리는건 배열돌리기2와 동일하게 돌렸다. 시간나면 풀이올려야지.. 혹시 궁금한점있으시면 댓글달아주시면 답변드리겠습니다. 후기 어려운문제는 아니었는데 문제에서 헷갈리게 임의로 정해도된다(?)라고 적혀있어서 시간이 걸렸다.. 코드 let nmk = readLine()!.split(separator: " ").map{Int(String($0))!} let n = nmk[0] let m = nmk[1] let k = nmk[2] var arr = [[Int]]() for _ in 0.. 2022. 5. 17. [Swift][구현] 백준 16967번 (배열 복원하기) 요구능력 구현 문제풀이 문제의 조건에 힌트를 모두 주었다. 두 배열중 하나에 포함된다는건 B는 필수적으로 A배열을 포함하고 있기 때문에 B만갖고있는것을 말한다. 가장 중요한건 빼기할때 절댓값이다.. for i in 0..= 0{ // aArr[i][j] = abs(aArr[i - x][j - y] - bArr[i][j]) } }else{//b에만 포함되면 aArr[i - x][j - y] = bArr[i][j] } } } 후기 절댓값때메 몇번을 다시했는지.. 코드 let hwxy = readLine()!.split(separator: " ").map{Int(String($0))!} let h = hwxy[0] let w = hwxy[1] let x = hwxy[2] let y = hwxy[3] var b.. 2022. 5. 14. 이전 1 2 3 4 5 6 7 ··· 59 다음