문제설명 :
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한사항 :
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
split 메소드와 equals 메소드, toUpperCase(toLowerCase) 메소드를 활용해서 해결하였습니다. 조건문 중 공백을 찾아내는 조건문의 순서에 주의해야합니다.
class Solution {
public String solution(String s) {
String answer = "";
int count = 0;
// 단어별 글자 구분을 위한 변수 count 선언
String [] str = s.split("");
// 문자열 s를 한글자씩 나눈 배열 str 선언
for(int i=0; i<str.length; i++){
if(str[i].equals(" ")){
// str 배열중에 공백이 있을경우 조건
answer += " ";
count = 0;
// answer에 공백을 추가하고 count를 0으로 초기화해준다.
// 해당 조건문이 최상위가 아니면 테스트케이스에서 오류가 발생함.
}else if(count%2 == 0){
// 단어중 짝수번째 글자일때 조건(첫번째 글자도 0번째 글자로 처리)
answer += str[i].toUpperCase();
// 해당 문자를 대문자로 변환
count++;
// 짝수의경우 count는 홀수가 된다.
}else if(count%2 != 0){
// 단어중 홀수번째 글자일때 조건
answer += str[i].toLowerCase();
// 해당 문자를 소문자로 변환
count++;
// 홀수의경우 count는 짝수가 된다.
}
}
return answer;
}
}
풀이에 도움이 된 링크
https://mozi.tistory.com/499
https://velog.io/@dkfma3323/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EC%9D%B4%EC%83%81%ED%95%9C-%EB%AC%B8%EC%9E%90-%EB%A7%8C%EB%93%A4%EA%B8%B0Java