1. 문자열안에 문자열
Q. 문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
func solution(_ str1:String, _ str2:String) -> Int {
return str1.contains(str2) ? 1 : 2
}
A. contains를 활용하여 전달 받은 str1에 str2이 포함되는지 판별한 후,
포함되면 1을 포함되지 않으면 2를 반환하여 해결했다.
2. 제곱수 판별하기
Q. 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
func solution(_ n:Int) -> Int {
var result = 2
for num in 1...n {
if num * num == n {
result = 1
break
}
}
return result
}
A. for문을 통해 1부터 전달 받은 n까지 순회하면서 해당하는 원소를 제곱했을때 n이면 result의 값을 1로 바꾼 후,
break를 통해 반복문을 탈출하고 result를 반환하여 해결했다.
feat.
func solution(_ n:Int) -> Int {
let root = Int(sqrt(Double(n)))
return root * root == n ? 1 : 2
}
다른 풀이를 보면서 sqrt()을 활용해 제곱근을 구한 후,
제곱근을 제곱했을 때 전달 받은 n이랑 일치하는지 판별하여 문제를 해결하는 풀이를 보고
sqrt()를 통해 제곱근을 구할 수 있다는 것을 알게 되었다...(다음엔 꼭 사용하자!)
3. 세균 증식
Q. 어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
func solution(_ n:Int, _ t:Int) -> Int {
var result: Int = n
(1...t).forEach { _ in
result *= 2
}
return result
}
A. 먼저 result에 n을 저장했다. 그리고 forEach문을 통해 1부터 전달 받은 t까지 순회하면서
result의 값에 2를 곱한 값을 저장한 후, result를 반환하여 해결했다.
feat.
func solution(_ n:Int, _ t:Int) -> Int {
n*Int(pow(Float(2) , Float(t)))
}
다른 풀이를 보면서 pow()을 활용해 2의 거듭제곱을 구하고
그 값을 n에 곱해 문제를 해결하는 풀이를 보고
pow()를 통해 거듭제곱을 할 수 있다는 것을 알게 되었다...
4. 문자열 정렬하기 (2)
Q. 영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
func solution(_ my_string:String) -> String {
return String(my_string.lowercased().sorted())
}
A. 전달 받은 my_string을 lowercased()를 통해 소문자로 바꾼 후,
sorted()를 활용해 알파벳 순서대로 정렬하여 반환된 값을 String으로 변환하여 해결했다.
이번에 sqrt(), pow()와 같이 기본적인 수학 개념에서 사용되는
메서드들을 새롭게 알게 되었는데, 위 메서드들을 모른 상태에서
문제를 해결하려다보니 풀이로 작성한 코드가 효율적이지 못했던 것 같다.
그래도 새로운 메서드들도 알게 되었으니 다음번에 사용할 수 있는 상황이 온다면
꼭 사용해서 문제를 조금 더 효율적으로 해결해보면 좋을 것 같다.
내일도 화이팅!
'Develop > Coding Test' 카테고리의 다른 글
코딩테스트 입문 (feat. Day 20 수학, 시뮬레이션, 문자열, 사칙연산) (5) | 2025.01.01 |
---|---|
코딩테스트 입문 (feat. Day 19 문자열, 배열, 조건문) (3) | 2024.12.28 |
코딩테스트 입문 (feat. Day 17 문자열, 수학, 배열, 조건문) (3) | 2024.12.02 |
코딩테스트 입문 (feat. Day 16 문자열, 수학, 배열, 조건문) (3) | 2024.11.27 |
코딩테스트 입문 (feat. Day 15 문자열, 해시, 배열, 수학) (2) | 2024.11.26 |