https://school.programmers.co.kr/learn/courses/30/lessons/120822
문제
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return 하도록 solution 함수를 완성해 주세요.
제한사항
1 ≤ my_string의 길이 ≤ 1,000
풀이
class Solution1 {
fun solution(my_string: String): String {
return my_string.reversed()
}
}
//String.reversed()
public inline fun String.reversed(): String {
return (this as CharSequence).reversed().toString()
}
class Solution2 {
fun solution(my_string: String): String {
return buildString {
val len = my_string.length
for (i in my_string.indices) {
append(my_string[len - i - 1])
}
}
}
}
- 해당 문제를 2가지 방법으로 풀어보았습니다.
- 1번 풀이의 경우 reversed 함수를 이용하여 문자열을 뒤집어 반환하였습니다. 이방법을 잘 쓰이지만 지금같이 문자열이 1000을 넘지 않는 이런 간단한 상황에서 시퀀스를 이용하는 reversed 과하다고 생각합니다.
- 2번 풀이의 경우 buildString함수와 반복문을 이용하여 문자열을 만들어 주었습니다. 이경우 최소한의 로직만을 사용하였기때문에 1번보다 상대적으로 빠른 것을 볼 수 있습니다. len을 상수로 만들지 말고 변수로 만들어서 사용할 때마다 len -- 를 하는 것도 좋은 방법이지만 중간에 빼주고 대입을 한다는 것 때문에 시간이 추가적으로 들어갈 수 있으므로 이런 간단한 상황에서는 선호하진 않습니다.
결과
'코틀린 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 점의 위치 구하기 (Kotlin) (0) | 2023.07.25 |
---|---|
[프로그래머스] - 가위 바위 보 (Kotlin) (0) | 2023.07.25 |
[프로그래머스] - 배열 뒤집기 (Kotlin) (0) | 2023.07.25 |
[프로그래머스] - 배열 두배 만들기 (Kotlin) (0) | 2023.07.24 |
[프로그래머스] - 최빈값 구하기(Kotlin) (0) | 2023.07.24 |