문제 설명 : JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 공백문자가 연속해서 나올 수 있습니다.
public class Solution {
public string solution(string s) {
string[] sArr = s.Split(" ");
for (int i = 0; i < sArr.Length; i++){
// 연속된 공백인 경우 넘김
if (sArr[i].Length == 0) continue;
// split 해둔 문자별 사용 전 소문자로 변환
string word = sArr[i].ToLower();
// 가장 첫번째 문자가 숫자인지 여부 확인
if (char.IsLetter(word[0])) {
// 숫자가 아닌 경우 대문자로 변환 후 저장
sArr[i] = char.ToUpper(word[0]) + word.Substring(1);
} else {
// 숫자인 경우 소문자로 변환한 문자 저장
sArr[i] = word;
}
}
return string.Join(" ", sArr);
}
}
string.Join(string separator, string[] values) : 구분자(separator)로 이어 붙여서 하나의 문자열을 만듬
char.IsLetter(char c) : char가 문자인지 확인
char.IsLetter(string s, int index) // s[index] 검사
char.IsLetter('A'); // true
char.IsLetter('z'); // true
char.IsLetter('한'); // true (한글)
char.IsLetter('é'); // true (악센트 문자)
char.IsLetter('中'); // true (한자)
char.IsLetter('3'); // false (숫자)
char.IsLetter('-'); // false (부호/구두점)
char.IsLetter(' '); // false (공백)
char.IsLetter('😀'); // false (이모지)'프로그래머스' 카테고리의 다른 글
| 2일차 - 피보나치 수 (0) | 2025.09.01 |
|---|---|
| 2일차 - 다음 큰 숫자 (0) | 2025.09.01 |
| 1일차 - 이진 변환 반복하기 (1) | 2025.08.25 |
| 1일차 - 최솟값 만들기 (0) | 2025.08.25 |
| 1일차 - 최대값과 최솟값 (1) | 2025.08.25 |