[Kotlin] 프로그래머스 - JadenCase 문자열 만들기
Kotlin문제
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한사항
s는 길이 1 이상 200 이하인 문자열입니다.
s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
입출력 예
입출력 예 #1
- 입력: "3people unFollowed me"
- 출력: "3people Unfollowed Me"
입출력 예 #2
- 입력: "for the last week"
- 출력: "For The Last Week"
코드 1
kotlin
class Solution {
fun solution(s: String): String {
var answer = ""
for (i in s.indices) {
if (i == 0)
answer = s[i].uppercase().toString()
else if (s[i] == ' ')
answer+= " "
else if (s[i - 1] == ' ')
answer+= s[i].uppercase().toString()
else
answer+= s[i].lowercase().toString()
}
return answer
}
}
text
테스트 1 〉 통과 (3.85ms, 60MB)
테스트 2 〉 통과 (3.63ms, 60.4MB)
테스트 3 〉 통과 (4.06ms, 61.6MB)
테스트 4 〉 통과 (4.82ms, 60.8MB)
테스트 5 〉 통과 (3.77ms, 61.8MB)
테스트 6 〉 통과 (3.52ms, 61.6MB)
테스트 7 〉 통과 (4.02ms, 58.9MB)
테스트 8 〉 통과 (4.83ms, 58.3MB)
테스트 9 〉 통과 (4.19ms, 59.3MB)
테스트 10 〉 통과 (2.43ms, 62.2MB)
테스트 11 〉 통과 (5.22ms, 59.7MB)
테스트 12 〉 통과 (3.74ms, 60.6MB)
테스트 13 〉 통과 (5.78ms, 60.1MB)
테스트 14 〉 통과 (5.53ms, 59.2MB)
테스트 15 〉 통과 (5.28ms, 60MB)
테스트 16 〉 통과 (7.31ms, 60.4MB)
테스트 17 〉 통과 (3.45ms, 61.7MB)
테스트 18 〉 통과 (0.04ms, 61.8MB)
코드 2
kotlin
class Solution {
fun solution(s: String): String {
var answer = ""
for (i in s.indices) {
if (i == 0 || s[i] == ' ' || s[i-1] == ' ')
answer+= s[i].uppercase().toString()
else
answer+= s[i].lowercase().toString()
}
return answer
}
}
text
테스트 1 〉 통과 (3.78ms, 61.2MB)
테스트 2 〉 통과 (2.79ms, 59.4MB)
테스트 3 〉 통과 (4.42ms, 62.8MB)
테스트 4 〉 통과 (3.89ms, 60MB)
테스트 5 〉 통과 (3.21ms, 61.1MB)
테스트 6 〉 통과 (4.04ms, 61.3MB)
테스트 7 〉 통과 (3.00ms, 60.9MB)
테스트 8 〉 통과 (4.13ms, 62.7MB)
테스트 9 〉 통과 (2.52ms, 61.7MB)
테스트 10 〉 통과 (2.46ms, 59.7MB)
테스트 11 〉 통과 (3.69ms, 62.4MB)
테스트 12 〉 통과 (2.98ms, 60.9MB)
테스트 13 〉 통과 (2.72ms, 60.4MB)
테스트 14 〉 통과 (2.38ms, 62MB)
테스트 15 〉 통과 (3.79ms, 60.8MB)
테스트 16 〉 통과 (2.69ms, 61.4MB)
테스트 17 〉 통과 (2.70ms, 62.6MB)
테스트 18 〉 통과 (3.48ms, 60.7MB)
코드 3. replaceFirstChar 함수 사용
kotlin
class Solution {
fun solution(s: String): String {
return s.lowercase().split(" ").joinToString(" ") { it.replaceFirstChar { str -> str.uppercase() } }
}
}
text
테스트 1 〉 통과 (14.24ms, 61.9MB)
테스트 2 〉 통과 (22.73ms, 61.6MB)
테스트 3 〉 통과 (25.42ms, 61.2MB)
테스트 4 〉 통과 (18.18ms, 60.2MB)
테스트 5 〉 통과 (19.63ms, 62.3MB)
테스트 6 〉 통과 (18.36ms, 61.6MB)
테스트 7 〉 통과 (16.31ms, 62MB)
테스트 8 〉 통과 (15.76ms, 61.6MB)
테스트 9 〉 통과 (17.78ms, 61.1MB)
테스트 10 〉 통과 (18.27ms, 62MB)
테스트 11 〉 통과 (13.90ms, 60.9MB)
테스트 12 〉 통과 (15.15ms, 61.7MB)
테스트 13 〉 통과 (15.64ms, 61.2MB)
테스트 14 〉 통과 (18.15ms, 62MB)
테스트 15 〉 통과 (19.55ms, 61.1MB)
테스트 16 〉 통과 (17.54ms, 61.6MB)
테스트 17 〉 통과 (15.81ms, 61.2MB)
테스트 18 〉 통과 (12.84ms, 61.3MB)