본문 바로가기

프로그래머스 (Swift)

(165)
[lv1] 하샤드 수 문제 내 정답 코드func solution(_ x:Int) -> Bool { let strX = String(x) var sum = 0 strX.map { sum += Int(String($0))! } return x % sum == 0 ? true : false} #1. 정수로 받은 x를 문자열로 바꾼다.2. 문자열을 탐색하여 각 문자를 정수로 바꿔 sum에 더해준다.3. x를 sum으로 나눠 나온 나머지 값이 0이면 true를, 0이 아니면 false를 반환한다.배운 기술
[lv1] 대충 만든 자판 문제 내 정답 코드import Foundationfunc solution(_ keymap:[String], _ targets:[String]) -> [Int] { var targetDic:[Character:Int] = [:] for i in 0.. j+1 { targetDic[char] = j+1 } } } var result : [Int] = [] for i in 0.. #1. 작성할 문자들로만 딕셔너리를 생성하고 0값을 기본으로 넣어준다.2. keymap의 문자가 딕셔너리의 문자와 일치하면 해당 문자의 인덱스를 가져온다.3. 딕셔너리의 value와 비교하여 0이면 할당해주고, 0이 아닌데 값이 ..
[lv1] 행렬의 덧셈 문제 내 정답 코드func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] { var result:[[Int]] = [] for i in 0.. #1. arr1 2차원 배열에 따라 2개의 반복문을 돌리고2. arr1, arr2 같은 위치를 더하여 temp 배열에 더해준다.3. temp를 result에 더해준다. result를 반환한다.
[lv1] 짝수와 홀수 문제 내 정답 코드func solution(_ num:Int) -> String { return num.isMultiple(of: 2) ? "Even" : "Odd"} #1. isMultiple을 사용해 짝수와 홀수를 판단한다.2. 삼항 연산자로 짝/홀수에 맞는 문자열을 반환한다.배운 기술
[lv1] 성격 유형 검사하기 문제 내 정답 코드import Foundation// 하나의 유형에 대한 객체로 유형 value와 score를 가지고 있다.struct Category { let category: String var score: Int = 0 mutating func plusScore(num: Int) { self.score += num }}// 하나의 지표에 대한 객체로 2개의 유형과 choice에 대한 점수를 가지고 있다.struct Chracteristic { let scores:[Int:Int] = [1:3, 2:2, 3:1, 5:1, 6:2, 7:3] var categories: [Category] // survey와 choice에 따라 유형의 s..
[lv1] 로또의 최고 순위와 최저 순위 문제 내 정답 코드import Foundationfunc solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] { // lottos의 0의 count를 파악 // lottos에서 win_nums와 동일한 숫자의 count를 파악 // 최고 순위 -> 동일 count와 0의 count를 더한 count // 최저 순위 -> 동일 count let ranking: [Lotto] = [Lotto(rank: 1, correctCount: 6), Lotto(rank: 2, correctCount: 5), Lotto(rank: 3, correctCount: 4), Lotto(rank: 4, correctCount: 3), Lotto(rank:..
[lv1] 평균 구하기 문제 내 정답 코드func solution(_ arr:[Int]) -> Double { return Double(arr.reduce(0, +)) / Double(arr.count)} #1. reduce를 통해 배열의 모든 값을 더해준다.2. 더한 값과 arr의 count를 Double형으로 바꿔주고 평균을 반환한다.배운 기술
[lv1] 숫자 짝꿍 문제 내 정답 코드import Foundationfunc solution(_ X:String, _ Y:String) -> String { // [숫자 : Count] var xDict = [Character : Int]() var yDict = [Character : Int]() var sameNum: [Character] = [] // 같은 문자이면 count를 +1 for char in X { xDict[char, default: 0] += 1 // xDict에 key에 대한 value가 없을 때 default값 설정 } for char in Y { yDict[char, default: 0] += 1 } ..
[lv1] 실패율 문제  내 정답 코드import Foundationfunc solution(_ N:Int, _ stages:[Int]) -> [Int] { var result:[Int] = [] var stage: [Stage] = [] var count: [Int] = [] var stageCount = stages.count for i in 1...N { for j in 0.. i-1 { count.append(j) } if j == stages.count-1 { stage.append(Stage(stage: i, failPersent: Double(coun..
[lv1] 핸드폰 번호 가리기 문제 내 정답 코드func solution(_ phone_number:String) -> String { var number = phone_number.map { String($0) } (0.. #1. 문자열을 문자열 배열로 바꿔준다.2. 뒤에 4자리를 빼고 반복문을 돌려준다.3. 모든 값을 "*"로 바꾸고4. 문자열 배열을 합쳐 반환한다.배운 기술