반응형
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. 예를 들어, "3people unFollowed me"는 "3people Unfollowed Me"로 변환됩니다.
제한 조건
문자열 s의 길이는 1 이상 200 이하입니다.
문자열 s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
숫자는 단어의 첫 문자로만 나옵니다.
숫자로만 이루어진 단어는 없습니다.
공백문자가 연속해서 나올 수 있습니다.
문제 풀이
package main
import (
"fmt"
"strings"
)
func solution(s string) string {
r := ""
isNewWord := true
for _, v := range s {
if v == ' ' {
r += " "
isNewWord = true
continue
}
if isNewWord {
if v >= '0' && v <= '9' {
r += string(v)
} else if v >= 'a' && v <= 'z' {
r += string(v - 32)
} else if v >= 'A' && v <= 'Z' {
r += string(v)
}
isNewWord = false
} else {
if v >= 'A' && v <= 'Z' {
r += string(v + 32)
} else {
r += string(v)
}
}
}
return r
}
func main() {
r := solution("3people unFollowed me")
fmt.Println(r) // Should print "3people Unfollowed Me"
r = solution("for the last week")
fmt.Println(r) // Should print "For The Last Week"
}
코드 설명
isNewWord라는 변수를 사용하여 각 단어의 첫 문자인지 아닌지 판단합니다.
공백 문자가 나오면 isNewWord를 true로 설정합니다.
단어의 첫 문자가 숫자일 경우, 그대로 추가합니다.
단어의 첫 문자가 소문자 알파벳일 경우, 대문자로 변환하여 추가합니다.
단어의 첫 문자가 대문자 알파벳일 경우, 그대로 추가합니다.
단어의 첫 문자가 아닐 경우, 모든 알파벳을 소문자로 변환하여 추가합니다.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 최솟값과 최댓값 with golang (0) | 2023.08.29 |
---|---|
[프로그래머스] 전국 대회 선발 고사 with golang (0) | 2023.08.26 |
[프로그래머스] 문자열 암호화 문제 풀기 with golang (0) | 2023.08.26 |