문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
s는 길이 1 이상 200 이하인 문자열입니다.
s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
숫자는 단어의 첫 문자로만 나옵니다.
숫자로만 이루어진 단어는 없습니다.
공백문자가 연속해서 나올 수 있습니다.
문제 풀이
substring 메소드를 활용하여 공백으로 구분해 문자열 배열에 넣어서 계산한다.
substring, toUpperCase, toLowerCase, charAt 등의 여러 메소드 사용.
코드
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split(" ");
for(String str : arr){
if(str.length()==0) {
answer+=" ";
continue;
}
char first = str.charAt(0);
if(first>=48 && first<=57){ // 숫자
String second = str.substring(1);
second = second.toLowerCase();
answer+=first;
answer+=second;
}else{
String second = str.substring(1);
second = second.toLowerCase();
first = Character.toUpperCase(first);
answer+=first;
answer+=second;
}
answer+=" ";
}
if(s.substring(s.length()-1, s.length()).equals(" ")) return answer;
answer = answer.substring(0,answer.length()-1);
return answer;
}
}
정리
처음엔 StringTokenizer를 사용했으나, 연속된 공백문자로 인해 substring 메소드를 사용하는 것으로 변경하였다.
쉽다고 생각하였으나... 정답률이 낮은 이유가 있는.. 보기보다 생각해야 하는 것이 많은 문제였다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 분수의 덧셈 (Java/자바), GCD 재귀 (0) | 2023.07.31 |
---|---|
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 (MySQL) (0) | 2023.07.24 |
[프로그래머스] 코딩테스트 연습 - 두 개 뽑아서 더하기 (JAVA/자바) (0) | 2022.02.13 |
[프로그래머스] 코딩테스트 연습 - 3진법 뒤집기 (JAVA/자바) (0) | 2022.02.13 |
[프로그래머스] 코딩테스트 연습 - 문자열 압축 (JAVA/자바) (0) | 2022.02.13 |