프로그래머스 (Swift)/기초 (123) 썸네일형 리스트형 [Day7-3] 카운트 업 문제 내 정답 코드 import Foundation func solution(_ start_num:Int, _ end_num:Int) -> [Int] { return Array(start_num...end_num) } # 1. 간단한 문제 배운 기술 [Day7-2] 배열 만들기 2 문제 내 정답 코드 import Foundation func solution(_ l:Int, _ r:Int) -> [Int] { var result:[Int] = [] var bool = false for i in l...r { let num2String = String(i) for char in num2String { if char != "0" && char != "5" { bool = false break } else { bool = true } } if bool { result.append(i) } } if result.isEmpty { result.append(-1) } return result } # 1. String으로 바꾸고 2. 순회하며 0, 5가 아니라면 플래그의 값을 저장한다. 3. 플.. [Day7-1] 수열과 구간 쿼리4 문제 내정답 코드 import Foundation func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] { var arr = arr queries.forEach { let (s, e, k) = ($0[0], $0[1], $0[2]) (s...e).filter { $0.isMultiple(of: k) }.map { arr[$0] += 1 } } return arr } # 1. 저번 문제와 큰 차이가 없는 문제라 쉽게 해결하였다. 2. s, e, k를 구하고 s~e구간 중 k의 배수의 개수만큼 +1을 해주었다. 배운 기술 [Day6-5] 수열과 구간 쿼리2 문제 내 정답 코드 import Foundation func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] { var result:[Int] = [] for queries in queries { let s = queries[0] let e = queries[1] let k = queries[2] let arr = arr[s...e].filter{ $0 > k } if arr.count == 0 { result.append(-1) } else { result.append(arr.min()!) } } return result } # 1. filter를 통해 k보다 큰 수를 걸러내고 2. min함수를 통해 최소 값을 가져와 배열에 추가한다. 3. filter로 거른 .. [Day6-4] 수열과 구간 쿼리 3 문제 내 정답 코드 import Foundation func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] { var arr = arr for i in 0.. [Int] { var result = arr for i in 0.. [Day6-3] 수 조작하기2 문제 내 정답 코드 func solution(_ numLog:[Int]) -> String { var result = "" for i in 0.. String { let dic = [1:"w", -1:"s", 10:"d", -10:"a"] return (1.. [Day6-2] 수 조작하기1 문제 내 정답 코드 import Foundation func solution(_ n:Int, _ control:String) -> Int { var result = n for char in control { switch char { case "w": result += 1 case "s": result -= 1 case "d": result += 10 case "a": result -= 10 default: break } } return result } # 1. control을 한 문자씩 확인하면서 각 문자에 맞게 result값을 계산한다. @ 다른 사람 풀이에서 인상 깊었던 풀이 dictionary가 무엇인지는 알고 있었지만 이렇게 사용할 생각은 못해봤다. dictionary와 reduce를 잘 활용한.. [Day6-1] 마지막 두 원소 문제 내 정답 코드 import Foundation func solution(_ num_list:[Int]) -> [Int] { var result = num_list var lastValue = num_list[num_list.count-1] var beforeValue = num_list[num_list.count-2] var plusValue = lastValue > beforeValue ? (lastValue-beforeValue) : lastValue * 2 result.append(plusValue) return result } # 1. 마지막 원소와 그 전의 원소를 구하고 2. 두 개의 값을 비교하여 새로 계산한 값을 배열에 추가한다. 배운 기술 [Day5-5] 이어 붙인 수 문제 내 정답 코드 import Foundation func solution(_ num_list:[Int]) -> Int { var num1 = num_list.filter { $0 % 2 == 0 }.map { String($0) }.reduce("", +) var num2 = num_list.filter { $0 % 2 == 1 }.map { String($0) }.reduce("", +) return Int(num1)! + Int(num2)! } # 1. filter로 홀/짝수를 판단하고 (isMultiple 사용해도 됨) 2. map으로 String변환 후 reduce를 통해 문자열 덧셈을 하였다. (reduce -> joined로 사용 가능) 배운 기술 [Day5-4] 원소들의 곱과 합 문제 내 정답 코드 import Foundation func solution(_ num_list:[Int]) -> Int { let multiple = num_list.reduce(1,*) let plus = (num_list.reduce(0, +)) * (num_list.reduce(0,+)) return multiple < plus ? 1 : 0 } # 1. reduce를 통해 배열의 합과 곱을 계산하였다. 2. 삼항 연산자를 통해 더 큰 값을 비교하였다. 배운 기술 이전 1 ··· 7 8 9 10 11 12 13 다음