웹 프로그래밍

[프로그래머스(Programmers)] 이상한 문자 만들기 - JAVA 본문

프로그래머스/level1

[프로그래머스(Programmers)] 이상한 문자 만들기 - JAVA

B. C Choi 2021. 11. 7. 20:31

 

문제 설명

 

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳을 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

 


 

제한 사항

 

1. 문자열 전체의 짝 / 홀수로 인덱스가 아니라, 단어(공백을 기준)별로 짝 / 홀수 인덱스를 판단해야 합니다.

2. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

 


 

입출력 예

 

s return
"try hello world" "TrY HeLlO WoRlD"

 


 

입출력 예 설명

 

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

 


 

풀이

 

1) idx의 증가량을 통해서 공백의 기준으로 짝/홀수 인덱스를 판단했습니다.

class Solution {
    public String solution(String s) {
        String answer = "";
		
		int idx = 0;
		
		String[] arr = s.split(""); // s 문자열을 split()으로 나누어 배열로 반환
		
		for(int i = 0; i < arr.length; i++) {
			if(arr[i].equals(" ")) { // " "일 경우 인덱스를 0(짝수)으로 판단 -> 새 단어의 시작
				idx = 0;
			} else {
				if(idx % 2 == 0) { // 단어의 짝수 인덱스일 경우
					idx++;
					arr[i] = arr[i].toUpperCase();
				} else { // 단어의 홀수 인덱스일 경우
					idx++;
					arr[i] = arr[i].toLowerCase();
				}
			}
			answer += arr[i];
		}
        return answer;
    }
}