✔ JadenCase 문자열 만들기
문제 분석하기
문자열을 공백으로 나눈 후, 문자열의 첫 단어만 대문자로 바꾼 후 다시 합쳐 반환함
손으로 풀어보기
- 문자열을 하나씩 이동하며 단어의 첫 번째 글자라면 대문자로 변환, 아니라면 소문자로 변환
- 인덱스가 0이라면 대문자로 변환, 아니라면 소문자로 변환
- 공백을 만나면 인덱스를 다시 0으로 초기화시켜줌
- 변환한 값을 반환
슈도코드 작성하기
s(문자열)
answer(s를 JadenCase로 바꾼 문자열 StringBuilder)
index(단어의 인덱스)
for(i -> s의 길이만큼) {
c(s의 i번째 글자)
if(c가 공백이라면) {
answer에 공백 추가
다음 글자가 단어의 첫 번째 글자이므로 index를 0으로 초기화
continue;
}
else if(index가 0이라면) {
answer에 c를 대문자로 변환해서 추가
index 증가
}
else {
answer에 c를 소문자로 변환해서 추가
index 증가
}
}
answer을 문자열로 변환하여 반환
코드 구현하기
/**
* 12951) JadenCase_문자열_만들기
*/
public class L020_12951 {
// s(문자열)
public String solution(String s) {
// answer(s를 JadenCase로 바꾼 문자열 StringBuilder)
StringBuilder answer = new StringBuilder();
// index(단어의 인덱스)
int index = 0;
// s의 길이만큼 반복
for (int i = 0; i < s.length(); i++) {
// c(s의 i번째 글자)
char c = s.charAt(i);
// c가 공백이라면
if (c == ' ') {
// answer에 공백 추가
answer.append(" ");
// 다음 글자가 단어의 첫 번째 글자이므로 index를 0으로 초기화
index = 0;
continue;
}
// index가 0이라면
else if (index == 0) {
// answer에 c를 대문자로 변환해서 추가
answer.append(Character.toUpperCase(c));
// index 증가
index++;
}
// index가 0이 아니라면
else {
// answer에 c를 소문자로 변환해서 추가
answer.append(Character.toLowerCase(c));
// index 증가
index++;
}
}
// answer을 문자열로 변환하여 반환
return answer.toString();
}
// 테스트 케이스
public static void main(String[] args) {
L020_12951 solution = new L020_12951();
String s = "3people unFollowed me";
String result = solution.solution(s);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[12953] N개의 최소공배수 (0) | 2024.01.11 |
---|---|
[12952] N-Queen (0) | 2024.01.11 |
[12949] 행렬의 곱셈 (0) | 2024.01.11 |
[12905] 가장 큰 정사각형 찾기 (0) | 2024.01.10 |
[12902] 3 x n 타일링 (0) | 2024.01.10 |