본문 바로가기
728x90

알고리즘48

[Swift 알고리즘] 프로그래머스 - 짝지어 제거하기 안녕하세요 코코종입니다. 2레벨 문제를 뽀개는 중입니다. import Foundation func solution(_ s:String) -> Int{ var answer: Int var arr = Array(s) var stack: [Character] = [] for i in 0.. 2023. 5. 1.
[Swift 알고리즘] 프로그래머스 - N Queen 안녕하세요 코코종입니다. 오늘은 백준대신 프로그래머스로 돌아왔습니다 크크... import Foundation func solution(_ n: Int) -> Int { let board: [Int] = Array(repeating: -1, count: n) // 한 행에는 하나만 가능하니까 어디에 놓였는지 체크용 var answer: Int = 0 dfs(board: board, depth: 0, n: n, answer: &answer) return answer } func dfs(board: [Int], depth: Int, n: Int, answer: inout Int) { if depth == n { answer += 1 return } for i in 0.. Bool { for i in 0.. 2023. 5. 1.
[Swift 알고리즘] 백준 2193 이친수 안녕하세요 코코종입니다. 오늘을 마지막으로 저는... 프로그래머스로 떠납니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래서 조금 간단한 문제를 들고 왔답니다 // // main.swift // BackJoon // // Created by kokojong on 2023/04/30. // import Foundation // 백준 2193 이친수 dp 실3 // 이친수는 0으로 시작하지 않는다. // 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. // dp로 기획해서 앞에꺼에 뒤가 0이라면 2 더하고 1이라면 1더함 // dp[i] = dp[i-1] + dp[i-2] // 1 // 0 - 0, 1 - 1 // 10 // 0 -1, 1 - 0 // 100 101 // 1,1.. 2023. 4. 30.
[Swift 알고리즘] 백준 1654 랜선 자르기 안녕하세요 코코종입니다. 오늘도 이분탐색! 이제 이분탐색에 좀 익숙해진 것 같네요 허헣 // // main.swift // BackJoon // // Created by kokojong on 2023/04/29. // import Foundation // 1654 랜선 자르기 이분탐색 실2 let kn = readLine()!.split(separator: " ").map { Int(String($0))! } let k = kn[0] let n = kn[1] // 만들려는 수 var arr: [Int] = [] for _ in 0.. mid를 줄여야함 r = mid - 1 } } print(answer) } binarySearch() 참고로 입력 범위에서 '랜선의 길이는 231-1보다 작거나 같은 자연수.. 2023. 4. 29.
[Swift 알고리즘] 백준 2110 공유기 설치 안녕하세요 코코종입니다. 오늘은 예~~전에 공부할때 못풀었던 이진탐색 문제인 공유기 문제를 가져왔습니다. // // main.swift // BackJoon // // Created by kokojong on 2023/04/28. // import Foundation // 2110 공유기 설치 이분탐색 골4 // idea: 공유기의 거리를 이진탐색으로 구하고 c와 같다면 답으로 인정 let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] // 집의 갯수 let c = input[1] // 공유기의 갯수 // 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치 -> 제일 붙어있는 애들끼리의 크기가.. 2023. 4. 28.
[Swift 알고리즘] 백준 2343 기타 레슨 안녕하세요 코코종입니다. 오늘도 이진탐색으로 돌아왔습니다~~ 50%에서 런타임에러가 발생하는 바람에... 고생을 좀 했습니다 껄껄... // // main.swift // BackJoon // // Created by kokojong on 2023/04/27. // import Foundation // 백준 2343 기타 레슨 let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = input[1] let arr = readLine()!.split(separator: " ").map { Int(String($0))! } let maxV = arr.reduce(0, +) func binaryS.. 2023. 4. 27.
728x90