https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코딩테스트 연습 > 연습문제 > JadenCase 문자열 만들기
난이도: LEVEL2
알고리즘 유형: 구현(문자열)
풀이 설명
요구사항
주어진 문자열 s는 숫자, 알파벳, 공백으로 이루어진 문자열이다.
길이는 최소 1에서 최대 200이다.
문자열s를 JadenCase 문자열로 변환해서 반환해라
JadenCase 문자열이란
시작 문자가 대문자 나머지 문자는 소문자
JadenCase 문자열의 숫자는 딱 하나이고 맨 앞만 가능하다
구현방법
boolean flag 변수를 사용해서 현재 문자가 처음인지 아닌지 구별해서 동작하도록 해줬다.
StringBuilder에 정답을 기록
만약 현재 문자가 공백문자면 flag 변수를 true로 바꾸고 공백문자를 StringBuilder에 넣어준다.
이때 true는 현재 문자가 JadenCase 문자열의 첫 문자라는 의미이다. (대문자)
공백문자가 아니라면 2가지 case이다.
1. flag(true) JadenCase 문자열 첫 문자 O
현재 문자는 JadenCase 첫 문자이다. 그래서 String 메소드인 toUpperCase() 메소드를 통해서 대문자로 변환해서 StringBuilder에 추가한다.
첫 문자였으니까 다음 공백문자를 만나거나 문자열의 끝까지 소문자를 넣어줘야 한다.
그래서 flag를 false로 바꿔서 JadenCase 문자열의 첫 문자가 아니라는 표시를 해준다.
2. flag(false) JadenCase 문자열 첫 문자 X
첫 문자가 아니니까 String 메소드인 toLowerCase() 메소드를 통해서 소문자로 변환해서 StringBuilder에 추가한다.
정답 코드
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
int size = s.length();
boolean first = true;
for(int i = 0; i < size; i++){
char cur = s.charAt(i);
// 이번 문자가 공백이라면?
if(cur == ' '){
sb.append(' ');
first = true;
continue;
}
// JadenCase 첫 문자 X
if(!first){
sb.append(Character.toString(cur).toLowerCase());
continue;
}
// JandenCase 첫 문자 O
sb.append(Character.toString(cur).toUpperCase());
first = false;
}
return sb.toString();
}
}
'Algorithm > Programmers Java' 카테고리의 다른 글
[JAVA] 프로그래머스 LEVEL2 최댓값과 최솟값 (0) | 2024.11.22 |
---|---|
[JAVA] 프로그래머스 LEVEL2 최솟값 만들기 (0) | 2024.11.22 |
[JAVA] 프로그래머스 LEVEL2 전화번호 목록 (1) | 2024.11.12 |
[JAVA] 프로그래머스 LEVEL2 다음 큰 숫자 (0) | 2024.11.11 |
[JAVA] 프로그래머스 LEVEL2 올바른 괄호 (2) | 2024.11.09 |