본문 바로가기

프로그래머스 (Swift)

(165)
[Day19-5] 무작위로 K개의 수 뽑기 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int], _ k:Int) -> [Int] { var result:[Int] = [] for value in arr { if result.count  #1. 처음에 Set를 사용하여 중복된 값을 없앴지만, 순서가 바뀌는 바람에 실패하였다.2. contains를 사용하여 중복된 값이 없도록 새로운 배열을 만들고3. 새로운 배열의 count가 k보다 작으면 남은 공간을 -1로 채워준다.배운 기술
[Day19-4] 배열 만들기 6 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int]) -> [Int] { var stk:[Int] = [] for i in 0.. #1. arr배열로 반목문을 돌리고2. stk배열이 empty한지로 첫 번째 조건문을 만들었다.3. else 문에서 stk의 마지막 값이 arr[i]와 같은지로 조건문을 완성하여 문제를 해결했다.배운 기술
[Day19-3] 빈 배열에 추가, 삭제하기 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int], _ flag:[Bool]) -> [Int] { var arr = arr var X: [Int] = [] for i in 0.. #1. arr배열로 반복문을 돌리고2. 해당 인덱스의 flag를 가져와 조건문을 완성한다.3. true일 때는 해당 값의 2배만큼 추가해주고4. false일 때는 마지막 요소를 삭제한다.배운 기술
[Day19-2] 배열의 원소만큼 추가하기 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int]) -> [Int] { var result:[Int] = [] for arr in arr { (0.. #1. 반복문을 돌려 배열의 값을 가져오고2. 해당 값만큼의 반복문을 돌려 result배열에 그 값을 추가해준다.배운 기술
[Day19-1] 세 개의 구분자 문제 내 정답 코드import Foundationfunc solution(_ myStr:String) -> [String] { let result = myStr.components(separatedBy: ["a","b","c"]).filter { !$0.isEmpty } return result.isEmpty ? ["EMPTY"] : result} #1. components를 통해 a, b, c의 구분자로 문자열을 나눠주고2. 나눈 문자열 중 공백이 아닌 문자열을 담아 새로운 배열을 완성한다.3. 삼항연산자를 통해 배열이 비어있다면 "EMPTY"를 반환한다.배운 기술
[Day18-5] rny_string 문제 내 정답 코드import Foundationfunc solution(_ rny_string:String) -> String { return rny_string.replacingOccurrences(of: "m", with: "rn")} #1. rny_string에서 "m"을 "rn"으로 바꿔주면 되는 문제이다.2. replacingOccurrences의 존재를 알면 쉽게 풀 수 있다.배운 기술
[Day18-4] 문자열 바꿔서 찾기 문제 내 정답 코드import Foundationfunc solution(_ myString:String, _ pat:String) -> Int { var myString = myString.map { String($0) } for i in 0.. #1. myString을 문자열 배열로 바꿔준다.2. A는 B로 B는 A로 바꿔준다.3. 바뀐 문자열 배열을 문자열로 join해주고4. contains를 통해 pat단어를 포함하고 있는지 반환한다.배운 기술
[Day18-3] 간단한 식 계산하기 문제 내 정답 코드import Foundationfunc solution(_ binomial:String) -> Int { let component = binomial.components(separatedBy: " ") let (a, op, b) = (Int(component[0]), component[1], Int(component[2])) switch op { case "+": return a!+b! case "-": return a!-b! case "*": return a!*b! default: return 0 }} #1. 공백으로 문자열을 분리해주면 a, op, b를 얻을 수 있다.2. switch..
[Day18-2] 문자열 잘라서 정렬하기 문제 내 정답 코드import Foundationfunc solution(_ myString:String) -> [String] { return myString.components(separatedBy: "x").sorted().filter { $0.count > 0 }} #1. separatedBy를 x로 하여 분리해주고2. 공백인 문자열은 제거하고 반환하였다.배운 기술
[Day18-1] x 사이의 개수 문제 내 정답 코드import Foundationfunc solution(_ myString:String) -> [Int] { return myString.components(separatedBy: "x").map { $0.count }} #1. x를 sparatedBy로 하여 분리해주고2. count들을 배열의 넣어 반환하였다.배운 기술