안녕하세요! 오늘은 나누어 떨어지는 숫자배열, 두 정수 사이의 합, 문자열 내 마음대로 정렬하기 문제를 풀어보았습니다!
1. 나누어 떨어지는 숫자 배열
나누어 떨어지는 숫자 배열문제는 %연산자를 사용할 줄 아는지 물어보는 문제입니다.
나누어 떨어진다는 문제는 대상을 %연산 했을때 0이 나오는지로 판단 가능합니다.
그리고 결과물의 갯수가 0이라면 -1을 넣어주고 sort하여 return 하면 됩니다!
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
var answer: [Int] = [Int]()
var count = arr.count
for i in 0..<count {
if (arr[i] % divisor) == 0 {
answer.append(arr[i])
}
}
if answer.count == 0 {
answer.append(-1)
}
answer.sort()
return answer
}
2. 두 정수 사이의 합
두 정수 사이의 합은 for문을 이용해 간단하게 풀면 됩니다.
for문으로 다 더하면 됩니다!
return형이 Int64이므로 형변환 신경 써 주시면 됩니다!
func solution(_ a:Int, _ b:Int) -> Int64 {
var fa:Int64 = Int64(a), fb:Int64 = Int64(b)
if fa > fb {
var tmp = fa
fa = fb
fb = tmp
}
var result:Int64 = 0
for i in fa...fb {
result += Int64(i)
}
return result
}
3. 문자열 내 마음대로 정렬하기
이 sorted 메소드를 잘 사용하시면 쉽게 풀어나갈 수 있습니다!
sorted by 파라메터에 후행클로져를 이용해 n번째 글자가 같을때는 String의 크기를 이용해 sort해주세요라고 부탁하면 쉽게 풀 수 있는 문제입니다!
func solution(_ strings:[String], _ n:Int) -> [String] {
let answer = strings.sorted(by: { (string1:String, string2: String) -> Bool in
if string1[string1.index(string1.startIndex, offsetBy: n)] == string2[string2.index(string2.startIndex, offsetBy: n)] {
return string1 < string2
}
else {
return string1[string1.index(string1.startIndex, offsetBy: n)] < string2[string2.index(string2.startIndex, offsetBy: n)]
}
})
return answer
}
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 서울에서 김서방 찾기, 소수 찾기, 시저 암호 (0) | 2021.12.07 |
---|---|
[프로그래머스] 문자열 내 p와 y의 개수, 문자열 내림차순으로 배치하기, 문자열 다루기 기본 with Swift (0) | 2021.12.06 |
[프로그래머스] 코딩테스트 연습 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 with Swift (0) | 2021.12.05 |
[프로그래머스] [1차] 비밀지도, 가운데 글자 가져오기 with Swift (0) | 2021.12.04 |
[프로그래머스] 최소직사각형, 나머지가 1이 되는 수 찾기, 부족한 금액 계산하기 with Swift (0) | 2021.12.03 |