
https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이
아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
입출력 예
s | return |
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
첫 번째 시도
class Solution {
fun solution(s: String): String {
var answer = s.split(' ')
var result: String = ""
for(i in answer) {
result = result + i.capitalize() + " "
}
return result.trim()
}
}
capitalize() 함수가 단어의 첫 문자를 대문자를 바꿔주나,
(단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다.)
나머지 알파벳을 소문자로 변환해주지 않기 때문에 실패,,
결과
class Solution {
fun solution(s: String): String {
var answer = s.lowercase().split(' ').toTypedArray()
for(i in answer.indices) {
answer[i] = answer[i].capitalize()
}
return answer.joinToString(" ")
}
}
주어진 문자열을 모두 소문자로 바꾸며 split(띄어쓰기 기준)으로 배열로 변경한다.
문자열에 더 이상 사용되지 않는 toLowerCase() 대신 lowercase()로 사용
answer의 indices(최소, 최대 인덱스)까지 반목문을 이용하여
각 인덱스에 첫 단어를 capitalize() 함수를 통해 대문자로 바꾼다.
가장 처음 배열로 변경한 answer의 값을 joinToString(" ")을 통해
합침과 동시에 각 배열에 띄어쓰기를 함
'Algorithm🖥️ > 프로그래머스' 카테고리의 다른 글
[프로그래머스 1단계] 푸드 파이트 대회 - 코틀린 (0) | 2022.06.06 |
---|---|
[프로그래머스 1단계] K번째수 - 코틀린 (0) | 2022.06.04 |
[프로그래머스 1단계] 과일 장수 - 코틀린 (0) | 2022.06.03 |
[프로그래머스 2단계] 멀리 뛰기 - 코틀린 (0) | 2022.05.30 |
[프로그래머스] 옹알이 (1) - Kotlin (0) | 2022.05.29 |