728x90 코테32 [Swift 알고리즘] 프로그래머스 - 영어 끝말잇기 안녕하세요 코코종입니다. 어제는 바빠서... 풀다가 완료를 못한걸 마무리 했답니다. import Foundation func solution(_ n:Int, _ words:[String]) -> [Int] { var answer: [Int] = [0, 0] // 탈락자 번호, 차례 var dict: [String: Bool] = [:] let w = words.count // words의 갯수 var last = words.first!.suffix(1) dict[words.first!] = true for i in 1.. 2023. 5. 4. [Swift 알고리즘] 프로그래머스 - 배달 안녕하세요 코코종입니다. 이문제는 처음에 dp로 구현했지만 40.6점만 받을수 있었습니다 ㅜㅜ 뭔가 맞는거 같은뎁... 모르겠어서 다른분들의 풀이를 참고했습니다... import Foundation func solution(_ N:Int, _ road:[[Int]], _ k:Int) -> Int { var answer = 0 // 1번에서 시작함! // road 내에서 [Int]: [a,b,c] -> a에서 b까지 가느데 c가 걸린다. // dp로 해서 1번 마을에서 이어진 애들부터 해서 가면서 최단 시간을 구하자! // 최단 거리를 나타낸 dp var dp: [Int] = Array(repeating: 50*10000, count: N+1) // index 0 미사용 // lines i와 연결된 마을들.. 2023. 5. 2. [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. 이전 1 2 3 4 5 6 다음 728x90