
https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음 봤을때 문제가 너무 쉬워 보였다.
LowerCase랑 UpperCase를 사용하면 쉽게 해결 될 것 같았다.
하지만 무슨 문제인지 대부분의 케이스가 실패로 떳다.
import java.util.*;
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(s, " ", true);
while(st.hasMoreTokens()){
String str = st.nextToken();
if(str.equals(" ")){
sb.append(str);
}else{
String first = str.substring(0,1);
String upperFirst = first.toUpperCase(); //첫번째 문자 대문자로
str = str.toLowerCase();
str = str.replaceFirst(first, upperFirst);
sb.append(str);
}
}
String answer = sb.toString();
return answer;
}
}

문제의 원인을 찾지는 못하였다.
코드를 수정하면서 substirng으로 바꾸었는데 해결이 됐다.
replaceFirst가 문제인가 하여 replace로 바꾸어 보아도 실패라고 떳다...
첫번째 글자가 여러번 나타날 수 있어 replaceFirst를 쓰는게 맞아 보이는데
아무래도 예상치 못한 케이스가 있는것같다.
최종 코드
import java.util.*;
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(s, " ", true);
while(st.hasMoreTokens()){
String str = st.nextToken();
if(str.equals(" ")){
sb.append(str);
}else{
str = str.toLowerCase();
sb.append(str.substring(0,1).toUpperCase() + str.substring(1));
}
}
String answer = sb.toString();
return answer;
}
}

반응형
'프로그래머스' 카테고리의 다른 글
| 프로그래머스 미로 탈출 - 자바(java) (0) | 2024.05.09 |
|---|---|
| 99클럽 코테 스터디 18일차 TIL 연속된 부분 수열의 합 - 자바(Java) (1) | 2024.04.16 |
| 99클럽 코테 스터디 16일차 TIL 모음 사전 (0) | 2024.04.13 |
| 99클럽 코테 스터디 15일차 TIL 뒤에 있는 큰 수 찾기 (0) | 2024.04.12 |
| 99클럽 코테 스터디 14일차 TIL 섬연결하기 (서로소 집합) 자바(Java) (0) | 2024.04.11 |