1. 컨트롤 제트
Q. 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
func solution(_ s:String) -> Int {
var result: Int = 0
var preValue: Int = 0
s.components(separatedBy: " ").forEach {
if $0 == "Z" {
result -= preValue
} else {
preValue = Int($0)!
result += preValue
}
}
return result
}
A. 결과를 저장하는 result와 이전값을 저장하는 preValue를 생성한다.
그리고 전달 받은 s를 components(separatedBy:)를 활용해 배열로 변환한 후, forEach로 순회하면서
"Z"일 경우 result에서 이전 값 preValue를 빼고 아닌 경우 preValue에 현재 값을 저장하고 result에 더해준다.
그 후, 반복문이 끝나면 result를 반환하여 해결했다.
2. 배열 원소의 길이
Q. 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 return하도록 solution 함수를 완성해주세요.
func solution(_ strlist:[String]) -> [Int] {
return strlist.map { $0.count }
}
A. 전달 받은 strlist를 고차함수 map을 통해 순회하면서 각 원소의 길이를 담은 배열을 반환하여 해결했다.
3. 중복된 문자 제거
Q. 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
func solution(_ my_string:String) -> String {
var result: [String] = []
my_string.forEach {
if !result.contains(String($0)) {
result.append(String($0))
}
}
return result.joined()
}
A. 전달 받은 my_string을 순회하면서 조건문을 통해
결과를 저장하는 배열에 현재 문자가 포함되지 않으면 추가하도록 한 후,
결과 배열을 joined()를 통해 문자열로 변환한 값을 반환하여 해결했다.
4. 삼각형의 완성조건 (1)
Q. 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
func solution(_ sides:[Int]) -> Int {
let sortedArray = sides.sorted()
return sortedArray[0] + sortedArray[1] > sortedArray[2] ? 1 : 2
}
A. 전달 받은 sides를 정렬한 배열에서
첫 번째, 두 번째를 더한 값이 세 번째 값보다 크면 1, 작으면 2를 반환하여 해결했다.
오늘은 문제를 푸는데 어려움도 없었고
다른 사람들의 풀이를 봐도 내 풀이와 유사했다.
꾸준히 풀다보니 벌써 진행 현황이 50퍼가 넘었다ㅎㅎ
내일도 화이팅!
'Develop > Coding Test' 카테고리의 다른 글
코딩테스트 입문 (feat. Day 15 문자열, 해시, 배열, 수학) (2) | 2024.11.26 |
---|---|
코딩테스트 입문 (feat. Day 14 문자열, 배열, 사칙연산, 수학, 조건문) (1) | 2024.11.24 |
코딩테스트 입문 (feat. Day 12 문자열, 정렬, 사칙연산, 수학) (2) | 2024.11.20 |
코딩테스트 입문 (feat. Day 11 수학, 반복문) (2) | 2024.11.19 |
코딩테스트 입문 (feat. Day 10 수학, 문자열, 해시, 완전탐색, 조건문) (2) | 2024.11.17 |