반응형
이상한 문자 만들기
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
-
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
-
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
try hello world | TrY HeLlO WoRlD |
입출력 예 설명
try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 TrY, HeLlO, WoRlD입니다. 따라서 TrY HeLlO WoRlD 를 리턴합니다.
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
int idx = 0;
String upper = s.toUpperCase();
String lower = s.toLowerCase();
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i) == ' ') {
sb.append(' ');
idx = 0;
} else {
if(idx % 2 == 0) {
sb.append(upper.charAt(i));
idx++;
} else {
sb.append(lower.charAt(i));
idx++;
}
}
}
String answer = sb.toString();
return answer;
}
}
Stringbuilder 를 활용하여 풀이하였습니다.
먼저 문제에서 주어지는 s를 사용하여 upper와 lower를 만들었습니다.
이후 for문을 반복하면서 공백을 만났을 경우, idx 값을 0으로 초기화해준 뒤 공백을 붙여주었습니다.
공백이 아닌 문자를 만났을 때에는 **idx % 2** 값이 0인 경우 upper에서 문자를 붙여주고, 0이 아닌 경우에는 lower에서 문자를 붙여주었습니다.
출처 : https://programmers.co.kr/learn/courses/30/lessons/12930
반응형
'알고리즘 연습' 카테고리의 다른 글
[ 프로그래머스 ] 시저암호 JAVA (0) | 2020.08.01 |
---|---|
[ 프로그래머스 ] 키패드 누르기 JAVA (0) | 2020.07.31 |
[ 프로그래머스 ] 자연수 뒤집어 배열로 만들기 JAVA (0) | 2020.05.04 |
[ 프로그래머스 ] 정수 내림차순으로 배치하기 JAVA (0) | 2020.05.04 |
[ 프로그래머스 ] 제일 작은 수 제거하기 JAVA (0) | 2020.05.04 |