✔ 이상한 문자 만들기
문제 분석하기
각 단어를 살펴보며 짝수번째일 경우 대문자로, 홀수번째일 경우 소문자로 바꾸도록 함
손으로 풀어보기
- 단어들을 살펴보며 인덱스가 짝수번째일 경우 대문자로, 홀수번째일 경우 소문자로 바꾸어 저장
- 만약 공백일 경우 인덱스를 다시 0으로 초기화하도록 함
슈도코드 작성하기
s(문자열)
answer(바꾼 문자열 StringBuilder)
i(s의 위치 인덱스)
j(홀수/ 짝수 구분 인덱스)
while(i가 s의 단어의 길이보다 작을 동안) {
if(s의 현재 위치가 공백이라면) {
answer에 공백 추가
새로운 단어가 시작되므로 j를 다시 0으로 초기화
}
else if(j가 짝수번째라면) {
answer에 대문자 추가
j 증가
}
else {
answer에 소문자 추가
j 증가
}
i 증가
}
answer을 문자열로 변환하여 반환
코드 구현하기
/**
* 12930) 이상한_문자_만들기
*/
public class L017_12930 {
// s(문자열)
public String solution(String s) {
// answer(바꾼 문자열 StringBuilder)
StringBuilder answer = new StringBuilder();
// i(s의 위치 인덱스)
int i = 0;
// j(홀수/ 짝수 구분 인덱스)
int j = 0;
while (i < s.length()) {
// s의 현재 위치가 공백이라면
if (s.substring(i, i + 1).equals(" ")) {
// answer에 공백 추가
answer.append(" ");
// 새로운 단어가 시작되므로 j를 다시 0으로 초기화
j = 0;
}
// j가 짝수번째라면
else if (j % 2 == 0) {
// answer에 대문자 추가
answer.append(s.substring(i, i + 1).toUpperCase());
// j 증가
j++;
}
// j가 홀수번째라면
else {
// answer에 소문자 추가
answer.append(s.substring(i, i + 1).toLowerCase());
// j 증가
j++;
}
// i 증가
i++;
}
// answer을 문자열로 변환하여 반환
return answer.toString();
}
// 테스트 케이스
public static void main(String[] args) {
L017_12930 solution = new L017_12930();
String s = "try hello world";
String result = solution.solution(s);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[12932] 자연수 뒤집어 배열로 만들기 (0) | 2023.12.27 |
---|---|
[12931] 자릿수 더하기 (0) | 2023.12.27 |
[12928] 약수의 합 (0) | 2023.12.27 |
[12926] 시저 암호 (0) | 2023.12.26 |
[12925] 문자열을 정수로 바꾸기 (0) | 2023.12.26 |