본문 바로가기

프로그래머스

1일차 - JadenCase 문자열 만들기

문제 설명 : 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