[Level 1] 프로그래머스 이상한 문자 만들기 코틀린 풀이

[Level 1] 프로그래머스 이상한 문자 만들기 코틀린 풀이

[Level 1] 프로그래머스 이상한 문자 만들기 코틀린 풀이


문제 소개

이번에 풀어볼 문제는 단어단위로 짝/홀에 따라서 대소문자를 적용하면 되는 문제입니다.

problem


문제풀이

우선 split을 이용하여 단어단위로 끊어준뒤 어짜피 다시 합쳐야하니
joinToString { } transform 기능을 이용합시다.

1
2
3
s.split(" ").joinToString(" ") {
// 여기서 it으로 받아서 변형
}

그리고 이제 글자단위로 바꿔주면 되는데 한번 더 쪼개야겠죠?

짝수 홀수를 구별하기 위해서 mapIndexed를 사용합니다.

받아서 짝수면 toUpperCase() 홀수면 c.toLowerCase() 처리를 하고
다시 단어로 합쳐줍니다!!

1
2
3
4
5
6
it.mapIndexed { i, c ->
when (i % 2) {
0 -> c.toUpperCase()
else -> c.toLowerCase()
}
}.joinToString("")

합치면 끝!


정답 코드

1
2
3
4
5
6
7
8
9
10
11
class Solution {
fun solution(s: String): String =
s.split(" ").joinToString(" ") {
it.mapIndexed { i, c ->
when (i % 2) {
0 -> c.toUpperCase()
else -> c.toLowerCase()
}
}.joinToString("")
}
}

2중 for문 쓴거같은 느낌이지만 실행시간 제약 없으니 넘어가죠…

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

댓글