728x90
백준 단계별 풀기를 어느 정도 끝내서 슬슬 프로그래머스로 넘어갈까 한다.
프로그래머스는 Lv.1 ~ Lv.5까지 난이도가 정해져 있는데,
3을 구글링 없이 풀 정도면 왠만한 IT 기업 코테는 통과한다고 보면 된다더라..!(카더라!)
그래서 일단 1단계, 2단계를 빠르게 다 풀고
3단계 문제들 위주로 무한 복습을 하고자 한다.
1단계 문제들은 전반적으로 내용이 쉬워서 코드만 기록해본다.
1) 짝수와 홀수
func solution(_ num:Int) -> String {
return num % 2 == 0 ? "Even" : "Odd"
}
2) 평균 구하기
func solution(_ arr:[Int]) -> Double {
let arrSum = arr.reduce(0) { $0 + $1 }
let arrAvg = Double(arrSum) / Double(arr.count)
return arrAvg
}
3) 약수의 합
func solution(_ n:Int) -> Int {
var arr = 0
if n == 0 {
arr = 0
} else {
for i in 1...n {
if n % i == 0 {
arr += i
}
}
}
return arr
}
4) 정수 제곱근 판별
func solution(_ n:Int64) -> Int64 {
var x = 0
for i in 1...n {
if n == i * i {
x = Int(i + 1)
break
}
}
if x == 0 {
return Int64(-1)
} else {
return Int64(x * x)
}
}
5) 자릿수 더하기
import Foundation
func solution(_ n:Int) -> Int
{
var answer:Int = 0
return String(n).reduce(0, {$0+Int(String($1))!})
return answer
}
6) 자연수 뒤집어 배열로 만들기
func solution(_ n:Int64) -> [Int] {
return String(n).map{Int(String($0))!}.reversed()
}
7) 문자열 내 p와 y의 개수
import Foundation
func solution(_ s:String) -> Bool
{
var ans:Bool = false
var countP = 0
var countY = 0
for i in s {
if i == "p" || i == "P" {
countP += 1
} else if i == "y" || i == "Y" {
countY += 1
}
}
if countP == countY {
return !ans
} else {
return ans
}
}
8) 하샤드 수
func solution(_ x:Int) -> Bool {
let array = String(x).map{String($0)}
var value: Int = 0
for i in array {
value += Int(i)!
}
if x % value == 0 {
return true
} else {
return false
}
}
9) 정수 내림차순으로 배치하기
func solution(_ n:Int64) -> Int64 {
let array = String(n).map{String($0)}.sorted(by:>)
var answer = String()
for i in 0..<array.count{
answer += array[i]
}
return Int64(answer)!
}
10) 문자열을 정수로 바꾸기
func solution(_ s:String) -> Int {
return Int(s)!
}
'TIL > 알고리즘 공부' 카테고리의 다른 글
프로그래머스 Lv. 1 Swift 알고리즘 연습 (3) (0) | 2022.09.20 |
---|---|
프로그래머스 Lv. 1 Swift 알고리즘 연습 (2) (0) | 2022.09.20 |
백준 18870번 Swift 알고리즘 연습 (0) | 2022.09.15 |
백준 10814번 Swift 알고리즘 연습 (0) | 2022.09.15 |
백준 1181번 Swift 알고리즘 연습 (0) | 2022.09.13 |