본문 바로가기
코딩테스트 준비/프로그래머스

프로그래머스 C# - JadenCase 문자열 만들기

by 코딩하는 돼징 2023. 9. 5.
반응형

첫 문자가 대문자이고 그 외의 알파벳은 소문자인 문자열

1) 문자열 소문자로 일단 만들기

2)그리고 첫번째 요소들만 대문자로 만들기

public class Solution {
    public string solution(string s) {
        string[] token = s.ToLower().Split(" ");
        string answer = "";
        
        for(int i=0; i<token.Length;i++)
        {
            if(!string.IsNullOrWhiteSpace(token[i]))
            {
                answer+= (token[i][0].ToString().ToUpper() + token[i].Substring(1) + " ");
            }
        }
        return answer;
    }
}

 


코드 실행해보면 다 통과되는데 제출 후 채점하기하면 통과가 안됨

다시 조건을 확인해보자

공백문자가 연속으로 올 수 있음

-> 공백 문자 삭제하기

public class Solution {
    public string solution(string s) {
        string[] token = s.ToLower().Split(" ");
        string answer = "";
        
        for(int i=0; i<token.Length;i++)
        {
            if(!string.IsNullOrWhiteSpace(token[i]))
            {
                answer+= (token[i][0].ToString().ToUpper() + token[i].Substring(1) + " ");
            }
        }
        answer = answer.Trim();
        return answer;
    }
}

채첨 졀과 44.4점


뭐가 또 문제일까?

공백문자가 연속으로 오는 것을 공백문자가 없다는 것으로 이해해서 다 삭제해버렸다.

 

다시 풀어보자

1) 공백 연속해서 입력하기

2) 맨 앞쪽과 맨 뒤쪽 공백 있나 확인하고 남겨 놓기

public class Solution {
    public string solution(string s) {
        string[] token = s.ToLower().Split(" ");
        string answer = "";

        for(int i=0; i<token.Length;i++)
        {
            if(!string.IsNullOrWhiteSpace(token[i]))
            {
                answer+= token[i][0].ToString().ToUpper() + token[i].Substring(1)+" ";
            }
            else
            {
                answer += " ";
            }
        }
        answer = answer.Substring(0, answer.Length-1);
        return answer;
    }
}

 

통과 됐다!

 

풀이 설명

01 문자열 소문자로 만들고 분할하기

02 현재 요소가 공백인지 확인

공백이 아닌 경우 : 첫 글자를 대문자로 변환하고 나머지 부분 그대로 붙이기

공백인 경우 : 공백들 이어 붙이기

03 마지막 공백 삭제하기

public String Substring(int startIndex, int length);
반응형

댓글