-
(Java) Programmers JadenCase 문자열 만들기Algorithm 2021. 12. 20. 08:02728x90반응형
- 목차
문제 소개.
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
문제 분석.
문자열의 Char 단위로 순회하면서 올바르게 교정합니다.
교정을 위한 조건은 아래와 같습니다.
1. 첫번째 문자는 반드시 대문자여야함.
2. 공백 뒤의 문자는 반드시 대문자여야함.
3. 공백이 아닌 문자와 연이어 등장하는 문자는 반드시 소문자여야함.
문제 풀이.
class Solution { public String solution(String s) { String answer = ""; for (int i = 0; i < s.length(); i++) { String str = s.substring(i, i + 1); if (i == 0) { answer += str.toUpperCase(); continue; } String prev = s.substring(i- 1, i); if (prev.equals(" ") && isSmall(str)) { answer += str.toUpperCase(); continue; } if (!prev.equals(" ") && isBig(str)) { answer += str.toLowerCase(); continue; } answer += str; } return answer; } boolean isSmall(String s) { char a = "a".charAt(0); char z = "z".charAt(0); char c = s.charAt(0); return c >= a && c <= z; } boolean isBig(String s) { char a = "A".charAt(0); char z = "Z".charAt(0); char c = s.charAt(0); return c >= a && c <= z; } }
반응형'Algorithm' 카테고리의 다른 글
Programmers 의상 (0) 2022.06.14 [Programmers] 동명 동물 수 찾기 (SQL, Having Count) (0) 2022.05.15 [Python] Programmers 짝지어 제거하기 (Stack) (0) 2021.12.15 [Programmers] 연속된 부분 수열의 합 ( Two Pointers, 투포인터 ) (0) 2021.12.11 (Java) Programmers 괄호 회전하기 [Stack, Queue] (0) 2021.12.04