https://programmers.co.kr/learn/courses/30/lessons/12930

 

코딩테스트 연습 - 이상한 문자 만들기

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

programmers.co.kr

 

 

문제 분석

- 입력받은 문자열(String s)을 문자열 배열(String[] temp)에 한글자씩 쪼개어 삽입한다.

- idx변수는 쪼개진 각 단어의 위치를 판단하기 위해 사용한다.

- for문을 통해 입력받은 문자열만큼 반복하여 대소문자를 판단한다.

- 만약 단어의 위치 중 해당 알파벳의 위치가 짝수일 경우 대문자, 홀수일 경우는 소문자로 변경한다.

 

 

문제 풀이

1. 입력받은 문자열을 문자열 배열에 쪼개어 삽입한다.

2. idx변수를 활용하여 단어의 알파벳 위치를 판단한다.

3. for문을 통해 입력받은 문자열의 길이만큼 반복한다.

4. 만약 해당 문자열이 공백이라면 정답 변수에 그냥 더하고 idx변수는 0으로 초기화한다.

5. 만약 해당 문자열이 짝수에 위치하는 알파벳이라면 toUpperCase()함수를 사용하여 해당 문자열을 대문자로 변경 후 정답 변수에 추가한다. 이 때, 단어의 위치를 판단하는 idx변수를 1 증가시킨다.

6. 만약 해당 문자열이 홀수에 위치하는 알파벳이라면 toLowerCase()함수를 사용하여 해당 문자열을 소문자로 변경 후 정답 변수에 추가한다. 이 때, 단어의 위치를 판단하는 idx변수를 1 증가시킨다. 

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] temp = s.split("");
        int idx = 0;
        
        for(int i=0;i<s.length();i++){
            if(temp[i].equals(" ")){
                answer += temp[i];
                idx = 0;
            }else if(idx%2==0){
                answer += temp[i].toUpperCase();
                idx++;
            }else if(idx%2!=0){
                answer += temp[i].toLowerCase();
                idx++;
            }
        }
        
        return answer;
    }
}

 

 

https://github.com/SOEUN2/Algorithm