본문 바로가기

Algorithm/Programmers13

[Algorithm/Programmers] 가장 큰 수 문제 풀이: 1. String으로 숫자를 합치고 Int로 변환하여 정렬한다. 2. 수가 모두 0일 때는 0으로 출력한다. 3. 정렬된 배열을 String으로 합쳐서 출력한다. 코드: import Foundation var numbers = [6, 10, 2] //var numbers = [3, 30, 34, 5, 9] func solution(_ numbers:[Int]) -> String { let sortedNums = numbers.sorted() { Int("\($0)\($1)")! > Int("\($1)\($0)")!} if sortedNums[0] == 0 { return "0" } return sortedNums.reduce("") {$0 + String($1)} } print(solutio.. 2020. 12. 18.
[Algorithm/Programmers] 여행 경로(DFS/BFS) 제한 사항: 1. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. -> 목적지의 알파벳 순으로 정렬한다. 2. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. -> 모든 경로를 지나가지만 모든 경로가 이어져 있는 것은 아니다. 3. 주어진 항공권은 모두 사용해야 합니다. 4. 항상 ICN에서 출발한다. 코드: import Foundation func solution(_ tickets:[[String]]) -> [String] { var visited = Array(repeating: false, count: tickets.count) var start = "ICN" let sortedTickets = tickets.sorted(by: { $0[1] < $1[.. 2020. 12. 12.
[Algorithm/Programmers] 기능 개발 (스택/큐) Swift 문제 풀이: 1. 각 기능 별로 완성되는 기간 확인 2. 첫 기능의 완성 기간을 기준으로 그 다음 기능의 기간과 비교하여 작다면 같이 pop 3. 다음 기능의 완성 기간이 더 클 때까지 2번 반복 4. 모든 기능이 끝나지 않았다면 2번으로 돌아가서 반복 import Foundation //테스트 케이스 //var progresses = [93, 30, 55] //var speeds = [1, 30, 5] //var progresses = [95, 90, 99, 99, 80, 99] //var speeds = [1,1,1,1,1,1] func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] { let len = progresses.count var resul.. 2020. 11. 22.