본문 바로가기

프로그래머스 (Swift)/기초

(123)
[Day9-3] 문자열의 두의 n글자 문제 내 정답 코드 import Foundation func solution(_ my_string:String, _ n:Int) -> String { return String(my_string.suffix(n)) } # 1. suffix를 통해 간단하게 구현할 수 있다. 2. 참고로 from파라미터가 들어있는 suffix에는 string.index를 넣어줘야 한다. 배운 기술
[Day9-2] 부분 문자열 이어 붙여 문자열 만들기 문제 내 정답 코드 import Foundation func solution(_ my_strings:[String], _ parts:[[Int]]) -> String { var result = "" for i in 0..
[Day9-1] 배열 만들기 5 문제 내 정답 코드 import Foundation func solution(_ intStrs:[String], _ k:Int, _ s:Int, _ l:Int) -> [Int] { var result:[Int] = [] intStrs.forEach { var str = $0.map { String($0) } var cutNum = Int(str[s.. k { result.append(cutNum!) } } return result } # 1. 문자열을 문자열 배열로 만들면 중간에 원하는 부분만 떼어내기 쉽다 2. 떼어낸 것을 joined하여 하나의 문자열로 합쳐주고 정수로 전환 3. k보다 큰 것만 추가하여 반환 배운 기술
[Day8-5] 문자열 여러 번 뒤집기 문제 내 정답 코드 import Foundation func solution(_ my_string:String, _ queries:[[Int]]) -> String { let startIndex = my_string.startIndex let endIndex = my_string.endIndex var result = my_string for query in queries { let (s, e) = (query[0], query[1]) let prefix = result.prefix(upTo: result.index(startIndex, offsetBy: s)) let suffix = result.suffix(from: result.index(startIndex, offsetBy: e+1)) var mi..
[Day8-4] 9로 나눈 나머지 문제 내 정답 코드 import Foundation func solution(_ number:String) -> Int { return number.map { Int(String($0))! }.reduce(0) { $0 + $1 } % 9 } # 1. number라는 문자열을 정수로 바꿔 모두 더하기만 할 줄 안다면 쉽게 해결 가능한 문제 배운 기술
[Day8-3] 글자 이어 붙여 문자열 만들기 문제 내 정답 코드 import Foundation func solution(_ my_string:String, _ index_list:[Int]) -> String { var result = "" for i in index_list { result.append(my_string[my_string.index(my_string.startIndex, offsetBy: i)]) } return result } # 1. index_list의 index값을 하나씩 가져오고 2. my_string에서 index번째 문자를 가져와 계속 이어 붙이다. 배운 기술
[Day8-2] 주사위 게임3 문제 내 정답 코드 import Foundation func solution(_ a:Int, _ b:Int, _ c:Int, _ d:Int) -> Int { var numSet:Set = [a, b, c, d] var numSetArr:[Int] = numSet.map { $0 } var numArr = [a,b,c,d] switch numSet.count { case 1: return numArr[0] * 1111 case 2: var (p, q) = (0, 0) for num in numSetArr { if numArr.filter { num == $0 }.count == 3 { p = num } else if numArr.filter { num == $0 }.count == 2 { p = numSe..
[Day8-1] 간단한 논리 연산 문제 내 정답 코드 import Foundation func solution(_ x1:Bool, _ x2:Bool, _ x3:Bool, _ x4:Bool) -> Bool { return (x1 || x2) && (x3 || x4) } # 1. AND, OR 논리 연산자만 안다면 쉽게 해결할 수 있는 문제 배운 기술
[Day7-5] 배열 만들기 4 문제 내 정답 코드 import Foundation func solution(_ arr:[Int]) -> [Int] { var stk:[Int] = [] var i = 0 while i < arr.count { if stk.isEmpty { stk.append(arr[i]) i += 1 } else if stk.last! < arr[i] { stk.append(arr[i]) i += 1 } else { stk.removeLast() } } return stk } # 1. 문제의 조건문 3개만 만족시켜주면 어렵지 않은 문제이다. 2. 배열의 마지막 요소를 removeLast()를 통해 삭제할 수 있다는 것을 알았다. 배운 기술 1. removeLast() https://developer.apple.com/..
[Day7-4] 콜라츠 수열 만들기 문제 내 정답 코드 import Foundation func solution(_ n:Int) -> [Int] { var result:[Int] = [n] var num = n while num != 1 { if num.isMultiple(of: 2) { num /= 2 } else { num = 3 * num + 1 } result.append(num) } return result } # 1. while문과 조건문의 사용으로 어렵지 않게 해결하였다. 배운 기술