문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
문제 풀이
- 문자열을 공백 기준으로 나누는 것이 아니라, 문자열을 한 글자씩 순회하면서 처리해야 함
- (왜냐하면 " hello world "처럼 공백이 연속될 수 있기 때문)
- 첫 글자이거나 앞 문자가 공백이면 → 대문자로 변환
- 그 외 → 소문자로 변환
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
boolean isStartOfWord = true; //단어의 시작 여부
for (char c : s.toCharArray()) {
if (isStartOfWord) {
if (Character.isLetter(c)) {
sb.append(Character.toUpperCase(c));
} else {
sb.append(c);
}
isStartOfWord = false;
} else {
sb.append(Character.toLowerCase(c));
}
if (c == ' ') {
isStartOfWord = true;
}
}
return sb.toString();
}
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스] [python] 리코쳇 로봇 (0) | 2025.07.06 |
---|---|
[프로그래머스] [python] 단어 변환 (0) | 2025.07.04 |
[프로그래머스] [Java] 표 편집 (0) | 2025.06.26 |
[프로그래머스] [Java] 부대복귀 (1) | 2025.06.23 |
[코딩테스트] 코딩테스트 대비 Java 문법 벼락치기 정리 (1) | 2025.05.19 |