반응형
첫 문자가 대문자이고 그 외의 알파벳은 소문자인 문자열
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);
반응형
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
프로그래머스 C# - 피보나치 수 (0) | 2024.02.19 |
---|---|
프로그래머스 C# - 다음 큰 숫자 (1) | 2023.12.15 |
프로그래머스 C# - 이진 변환 반복하기 (0) | 2023.09.12 |
프로그래머스 C# - 최솟값 만들기 (0) | 2023.09.06 |
프로그래머스 C# - 최댓값과 최솟값 (0) | 2023.08.28 |
댓글