728x90
1단계 문제 10개
11) x만큼 간격이 있는 n개의 숫자
func solution(_ x:Int, _ n:Int) -> [Int64] {
var array = [Int64]()
for i in Int64(1)...Int64(n) {
let value = Int64(x) * i
array.append(value)
}
return array
}
12) 나머지가 1이 되는 수 찾기
import Foundation
func solution(_ n:Int) -> Int {
var value = 0
for i in 1...n {
if n % i == 1 {
value = i
break
}
}
return value
}
13) 콜라츠 추측
func solution(_ num:Int) -> Int {
var value = num
var count = 0
if num == 1 {
return 0
} else {
for i in 1... {
if i > 500 {
count = -1
break
} else {
if value % 2 == 0 {
value = value / 2
count += 1
if value == 1 { break }
} else {
value = value * 3 + 1
count += 1
if value == 1 { break }
}
}
}
return count
}
}
14) 두 정수 사이의 합
func solution(_ a:Int, _ b:Int) -> Int64 {
var value = 0
if a == b {
return Int64(a)
} else if a < b {
for i in a...b {
value += i
}
} else if a > b {
for j in b...a {
value += j
}
}
return Int64(value)
}
15) 서울에서 김서방 찾기
func solution(_ seoul:[String]) -> String {
var arr = [String]()
var count = 0
for i in seoul {
arr.append(i)
}
for j in 0...arr.count - 1 {
if arr[j] == "Kim" { count = j }
}
return "김서방은 \(count)에 있다"
}
16) 핸드폰 번호 가리기
func solution(_ phone_number:String) -> String {
var arr = phone_number.map{String($0)}
if arr.count > 4 {
for i in 0...arr.count - 5 {
arr[i] = "*"
}
}
return arr.joined(separator:"")
}
17) 나누어 떨어지는 숫자 배열
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
var array = arr.map{Int($0)}
var array2 = [Int]()
for i in 0...array.count-1 {
if array[i] % divisor == 0 {
array2.append(array[i])
}
}
if array2.count == 0 {
return [-1]
} else {
return array2.sorted()
}
}
18) 제일 작은 수 제거하기
func solution(_ arr:[Int]) -> [Int] {
var array = arr.map{Int($0)}
var idx = 0
if arr.count > 1 {
idx = array.index(of: array.min()!)!
array.remove(at: idx)
} else {
array = [-1]
}
return array
}
19) 음양 더하기
import Foundation
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var array1 = absolutes.map{Int($0)}
var array2 = signs.map{Bool($0)}
for i in 0...array1.count-1 {
if array2[i] == false {
array1[i] = array1[i] * -1
}
}
return array1.reduce(0, +)
}
20) 수박수박수박수박수박수?
func solution(_ n:Int) -> String {
var array = [Character]()
for i in 1...n {
if i % 2 == 0 {
array.append("박")
} else {
array.append("수")
}
}
return String(array)
}
'TIL > 알고리즘 공부' 카테고리의 다른 글
프로그래머스 Lv. 1 Swift 알고리즘 - 크기가 작은 부분 문자열 (0) | 2022.12.26 |
---|---|
프로그래머스 Lv. 1 Swift 알고리즘 연습 (3) (0) | 2022.09.20 |
프로그래머스 Lv. 1 Swift 알고리즘 연습 (1) (0) | 2022.09.20 |
백준 18870번 Swift 알고리즘 연습 (0) | 2022.09.15 |
백준 10814번 Swift 알고리즘 연습 (0) | 2022.09.15 |