반응형
문제 링크
코딩테스트 연습 - JadenCase 문자열 만들기 | 프로그래머스 스쿨 (programmers.co.kr)
문제 풀이
1번 풀이
- 모든 문자를 직접 순회하며 조건에 맞게 대/소문자 치환
public String solution(String s) {
StringBuilder sb = new StringBuilder();
boolean flag = true;
for(char ch : s.toCharArray()) {
sb.append(flag ? Character.toUpperCase(ch) : Character.toLowerCase(ch));
flag = (ch == ' ') ? true : false;
}
return sb.toString();
}
대문자가 되는 기준은 첫문자
와 공백의 다음 문자
입니다.
해당 기준은 (ch == ' ')
조건으로 쉽게 구분할 수 있습니다.
테스트 처리속도
- 🔥 0.04ms ~ 0.10ms
2번 풀이
- 모든 문자를 소문자로 바꾼 후 정규식을 통해 조건에 맞는 문자만 대문자로 치환
public String solution(String s) {
s = s.toLowerCase();
s = Pattern.compile("(((^)|(?<= ))[a-z]{1})")
.matcher(s)
.replaceAll(matche -> matche.group().toUpperCase());
return s;
}
(^)
문자열의 시작점(?<= )
후방탐색 (공백이 있으므로 공백 다음 문자열을 탐색)
만약(?<=#)
이면 # 다음 문자열을 탐색[a-z]{1}
첫 번째 문자가 알파벳 a-z인 경우- 정규식 해석
((^)|(?<= ))[a-z]{1}
문자열의 시작점 또는 공백 이후 문자열 1개가 a~z인 경우
테스트 처리속도
- 🔥 0.56ms ~ 0.80ms
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - 피보나치 수 java :: 모듈로 연산 (0) | 2022.07.15 |
---|---|
프로그래머스 - 하노이의 탑 java (재귀/반복문) :: 12946 (0) | 2022.07.13 |
프로그래머스 - N개의 최소공배수 java (0) | 2022.07.11 |
프로그래머스 - 로또의 최고 순위와 최저 순위 java :: 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2022.07.09 |
프로그래머스 - 신고 결과 받기 java :: 2022 KAKAO BLIND RECRUITMENT (0) | 2022.07.09 |