목록swift 알고리즘 (167)
쥐수의 공부노트
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b2spoI/btsniuloSMn/3ScGdwa00Bzx0sRNXFE98k/img.png)
정답 : let input = readLine()!.split(separator: " ").map{Int($0)!} let n = input[0] let m = input[1] var array : [Int] = [] var issue = Array(repeating: false, count: n + 1) func check(num : Int) { if num == m { if array.sorted() == array { for _ in 0..
해당 문제는 다른 카테고리에서 진행한 문제입니다. 해당 링크를 참고해주세요! https://jisssuu.tistory.com/185
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cKUCly/btsnhTQ9KU2/lqkpbEBoUxgljt7ZQQAkvk/img.png)
정답 : import Foundation let num = Int(readLine()!)! let result = pow(2, num) - 1 func move(from: Int, to : Int) { print("\(from) \(to)") } func hanoi(n : Int, from : Int, by : Int , to : Int) { if n == 1 { move(from: from, to: to) } else { hanoi(n: n-1, from: from, by: to, to: by) move(from: from, to: to) hanoi(n: n-1, from: by, by: from, to: to) } } print(result) hanoi(n: num, from: 1, by: 2, to..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Hwpc9/btsm9gMKwRB/kUdKrCpFs18YgRM9PAuRg1/img.png)
정답 : import Foundation func kanto(n : Double) -> String { if n == 0 { return "-" } let line = kanto(n: n - 1) return line + String(repeating: " ", count: Int(pow(3, n - 1))) + line } while let input = readLine() { let num = Double(input)! let result = kanto(n: num) print(result) } 더보기 TMI : pow의 n - 1은 Double형이여야만 하고, 이 문제에서는 입력이 있을동안은 계속 유지가 되야하는 것 같다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/box56M/btsmZfn8hK2/OXtkuGK5ucvgJGRT6QkE40/img.png)
정답 : let input = readLine()!.split(separator:" ").map{Int(String($0))!} let N = input[0] let K = input[1] var numArray = readLine()!.split(separator:" ").map{Int(String($0))!} var count = 0 var answer = -1 func mergeSort(_ array: [Int], _ start: Int, _ end: Int) { if array.count
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pmldh/btske4onvhF/KRM5tsrqqIAhTFZ0ochFK0/img.png)
풀이 과정 : 팰린드롬을 확인하는 recusion 함수는 문제에서 제공한다. (물론 언어는 Swift가 아니다.) 우리는 recusion 함수에서 조건에 들어가기 전, count를 한개씩 올리면서 함수의 호출 count를 저장한다. 물론 이 count는 return을 할 수 없기에, 입력을 새로 받을때마다 다시 0으로 초기화를 시켜준다. 정답 : func recusion(array : [String], n : Int , m : Int ) -> Int { count += 1 if n >= m { return 1 } else if array[n] != array[m] { return 0 } else { return recusion(array: array, n: n+1, m: m-1) } } let n = I..