1. 숫자 찾기
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < num < 1,000,000
- 0 ≤ k < 10
- num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
입출력 예
num | k | result |
29183 | 1 | 3 |
232443 | 4 | 4 |
123456 | 7 | -1 |
입출력 예 설명
입출력 예 #1
- 29183에서 1은 3번째에 있습니다.
입출력 예 #2
- 232443에서 4는 4번째에 처음 등장합니다.
입출력 예 #3
- 123456에 7은 없으므로 -1을 return 합니다.
제출 답안
import Foundation
func solution(_ num: Int, _ k: Int) -> Int {
// num을 문자열로 변환하여 numString에 저장
let numString = String(num)
// k를 문자열로 변환하여 kString에 저장
let kString = String(k)
// numString에서 kString이 처음 등장하는 위치를 찾기
if let index = numString.firstIndex(of: Character(kString)) {
// 위치를 1-based 인덱스로 반환
return numString.distance(from: numString.startIndex, to: index) + 1
}
// k가 num에 없으면 -1 반환
return -1
}
2. n의 배수 고르기
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
- 1 ≤ numlist의 크기 ≤ 100
- 1 ≤ numlist의 원소 ≤ 100,000
입출력 예
n | numlist | result |
3 | [4, 5, 6, 7, 8, 9, 10, 11, 12] | [6, 9, 12] |
5 | [1, 9, 3, 10, 13, 5] | [10, 5,] |
12 | [2, 100, 120, 600, 12, 12] | [120, 600, 12, 12] |
입출력 예 설명
입출력 예 #1
- numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.
입출력 예 #2
- numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.
입출력 예 #3
- numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.
제출 답안
import Foundation
func solution(_ n:Int, _ numlist:[Int]) -> [Int] {
return numlist.filter { $0 % n == 0 }
}
3. 자릿수 더하기
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
제한사항
- 0 ≤ n ≤ 1,000,000
입출력 예
n | result |
1234 | 10 |
930211 | 16 |
입출력 예 설명
입출력 예 #1
- 1 + 2 + 3 + 4 = 10을 return합니다.
입출력 예 #2
- 9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.
제출 답안
import Foundation
func solution(_ n: Int) -> Int {
return String(n).compactMap { $0.wholeNumberValue }.reduce(0, +)
}
https://developer.apple.com/documentation/swift/character/wholenumbervalue
wholeNumberValue | Apple Developer Documentation
The numeric value this character represents, if it represents a whole number.
developer.apple.com
wholeNumberValue는 문자(Character) 타입에서 사용되는 Swift의 속성으로, 해당 문자가 숫자로 변환될 수 있을 경우 정수(Int) 값을 반환합니다. 변환할 수 없는 경우 nil을 반환
4. OX퀴즈
덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다.
- 1 ≤ quiz의 길이 ≤ 10
- X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.
- X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다.
- -10,000 ≤ X, Y ≤ 10,000
- -20,000 ≤ Z ≤ 20,000
- [연산자]는 + 와 - 중 하나입니다.
입출력 예
quiz | result |
["3 - 4 = -3", "5 + 6 = 11"] | ["X", "O"] |
["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] | ["O", "O", "X", "O"] |
입출력 예 설명
입출력 예 #1
- 3 - 4 = -3 은 틀린 수식이므로 "X", 5 + 6 = 11 은 옳은 수식이므로 "O" 입니다. 따라서 ["X", "O"]를 return합니다.
입출력 예 #2
- 19 - 6 = 13 은 옳은 수식이므로 "O", 5 + 66 = 71 은 옳은 수식이므로 "O", 5 - 15 = 63 은 틀린 수식이므로 "X", 3 - 1 = 2는 옳은 수식이므로 "O" 따라서 ["O", "O", "X", "O"]를 return합니다.
제출 답안
import Foundation
func solution(_ quiz: [String]) -> [String] {
return quiz.map { expression in
// 수식을 공백(" ")을 기준으로 나누어 배열로 변환
let parts = expression.split(separator: " ").map { String($0) }
// 배열의 요소 개수가 정확히 5개여야 하며, 숫자 변환이 가능해야 함
guard parts.count == 5,
let x = Int(parts[0]), // 첫 번째 숫자 (X)
let y = Int(parts[2]), // 두 번째 숫자 (Y)
let z = Int(parts[4]) else { // 결과값 (Z)
return "X" // 형식이 잘못되었거나 변환이 실패하면 "X" 반환
}
// 연산자에 따라 덧셈 또는 뺄셈 수행
let result = (parts[1] == "+") ? (x + y) : (x - y)
// 계산 결과와 주어진 결과(Z)가 일치하면 "O", 아니면 "X" 반환
return result == z ? "O" : "X"
}
}
'프로그래머스 입문문제' 카테고리의 다른 글
[프로그래머스 입문문제] Day 19 문자열, 배열, 조건문 (0) | 2025.02.11 |
---|---|
[프로그래머스 입문문제] Day 18 문자열, 수학, 조건문, 정렬 (0) | 2025.02.08 |
[프로그래머스 입문문제] Day 16 문자열, 수학, 배열, 조건문 (0) | 2025.02.05 |
[프로그래머스 입문문제] Day 15 문자열, 해시, 배열, 수학 (0) | 2025.02.04 |
[프로그래머스 입문문제] Day 14 조건문, 반복문, 시뮬레이션, 문자열 (0) | 2025.02.03 |