728x90
반응형
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
문제 설명 |
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. |
제한 조건 |
|
입출력 예 | |
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
|
나의 풀이
1. array에 문자열 s를 문자 단위로 쪼개 넣는다.
2. array.length까지 돌리는 반복문에서 array[i]가 공백문자(' ')이면, cnt는 0이고(cnt리셋), 아니면 1을 더한다.
3. cnt가 짝수면 array[i]는 소문자로 변경하고 홀수면 대문자로 변경한 값을 answer에 차례로 넣고 리턴한다.
class Solution {
fun solution(s: String): String {
var answer = ""
val cArray = s.toCharArray()
var cnt = 0
for (char in cArray) {
if (char == ' ') {
cnt = 0
answer += char
} else {
answer += if (cnt % 2 == 0) char.toUpperCase() else char.toLowerCase()
cnt++
}
}
return answer
}
}
처음엔 split(" ")을 이용해서 공백 기준 단어들로 쪼갰으나, 띄어쓰기가 두개 이상인 경우 <실패>로 처리되면서, 모든 문자를 쪼개 넣는 방법을 이용 |
Kotlin 코드 정리
class Solution {
fun solution(s: String) =
s.split(" ").joinToString(" ") { word ->
word.mapIndexed { index, char ->
if (index % 2 == 0) char.toUpperCase() else char.toLowerCase()
}.joinToString("")
}
}
728x90
반응형
'프로그래머스 > Kotlin | Level1' 카테고리의 다른 글
[프로그래머스/Kotlin]Level1 - 정수 내림차순으로 배치하기 (0) | 2021.09.22 |
---|---|
[프로그래머스/Kotlin]Level1 - 정수 제곱근 판별 (0) | 2021.09.22 |
[프로그래머스/Kotlin]Level1 - 자연수 뒤집어 배열로 만들기 (0) | 2021.09.17 |
[프로그래머스/Kotlin]Level1 - 핸드폰 번호 가리기 (0) | 2021.09.15 |
[프로그래머스/Kotlin]Level1 - 행렬의 덧셈 (0) | 2021.09.15 |