목록분류 전체보기 (214)
쥐수의 공부노트
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cfSBCb/btsiBJUuMqL/JmbSBHPbKvLoaSGMTGAK3k/img.png)
정답 : let n = Int(readLine()!)! var array = Set() var num = 0 var count = 0 for _ in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cGSvTF/btsivREfhon/nRyIrRk86plcKt7srzO7lK/img.png)
정답 : let n = Int(readLine()!)! let input = readLine()!.split(separator: " ").map{Int($0)!}.sorted() var result = 0 if input.count == 1 { result = input[0] * input[0] } else { result = input[0] * input[input.count-1] } print(result) 더보기 TMI : 모든 코딩테스트 문제가 브론즈 단계였으면 좋겠다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bijulL/btsisNcfh7F/zvg23TX4PWuRckccd6tODK/img.png)
정답 : var array = Array(repeating: Array(repeating: 0, count: 31), count: 31) var result : [Int] = [] for i in 0...30 { for j in 0...i { if i == j || j == 0 { array[i][j] = 1 } else { array[i][j] = array[i-1][j-1] + array[i-1][j] } } } let n = Int(readLine()!)! for _ in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IIzPG/btsitAjpIEM/mkylfJxzxPfyilXGzza0d0/img.png)
정답 : let n = Int(readLine()!)! var array = Array(repeating: 0, count: 1000001) var pre = Array(repeating: 0, count: 10000001) var result : [Int] = [] array[1] = 0 if n == 1 { print(array[1]) print(1) } else { for i in 2...n { array[i] = array[i-1] + 1 pre[i] = i - 1 if i % 3 == 0 && array[i] > array[i/3] + 1{ array[i] = array[i/3] + 1 pre[i] = i/3 } if i % 2 == 0 && array[i] > array[i/2] + 1{ ar..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b9lYQF/btsiu0H6Nuk/l0LD6ES1eNQcT0kiqk0rq0/img.png)
정답 : let input = readLine()!.split(separator: " ").map{Int($0)!} let n = input[0] let m = input[1] var result : [Int] = [] var array = Array(repeating: 0, count: 100001) var num = readLine()!.split(separator: " ").map{Int($0)!} array[1] = num[0] for i in 2...num.count { array[i] = array[i-1] + num[i-1] } for _ in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bS0lZ6/btsisSdKA0G/mNMisKY8CXwAVyM8iuWzM0/img.png)
정답 : let n = Int(readLine()!)! var array = Array(repeating: 0, count: 1001) array[1] = 1 array[2] = 2 if n == 1 { print(array[1]) } else if n == 2{ print(array[2]) } else { for i in 3...n { array[i] = (array[i-1] + array[i-2]) % 10007 } print(array[n]) } 더보기 TMI : DP 문제들은 문제를 푸는 것이 어려운게 아니라, 점화식을 세우기 위한 단계가 가장 어려운 것 같다. 이번에는 초기값과 점화식을 보지 않고, 내가 한번 생각을 해 보았다. 세울 때, 암산으로 세우다 보니 조금 답답한 감이 있지만, 그래도 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcAVwU/btsiu2sn0we/1K9JAY63b6nuP8hpED9J01/img.png)
정답 : let n = Int(readLine()!)! var array = Array(repeating: Array(repeating: 0, count: 3), count: n+1) var point = Array(repeating: Array(repeating: 0, count: 3), count: n+1) for i in 1...n { let input = readLine()!.split(separator: " ").map{Int($0)!} point[i][0] = input[0] point[i][1] = input[1] point[i][2] = input[2] } array[1][0] = point[1][0] array[1][1] = point[1][1] array[1][2] = point[1][..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6XyhM/btsizdfPBhU/8VbBoEifL6E8H5P3r6rJJk/img.png)
정답 : let n = Int(readLine()!)! var stairs = [Int]() var dp = Array(repeating: 0, count: n+1) for _ in 0..= 2 { dp[2] = stairs[0] + stairs[1] } for i in 3...n { dp[i] = max(dp[i-2], dp[i-3] + stairs[i-2]) + stairs[i-1] } print(dp[n]) 더보기 TMI : 코드블럭을 사용해서 올리는 방법을 알게 되었다.. 할 줄 몰라서 스크린샷만 사용했는데.. 앞으로는 코드블럭을 애용하자! 문제에 대해서 2차원 배열을 사용하는 방법과 1차원 배열을 사용하는 방법을 진행했지만, 내가 코드를 잘못 옮긴건지, 자꾸 오답이 나왔다. 그래서 아쉽게도 바킹..