코딩 테스트(Coding Test)/프로그래머스

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

잇트루 2023. 3. 19. 03:08
반응형

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 설명

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

 

 

제한사항

  • 자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

 

 

입출력 예

s return
"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) {
        String answer = "";
        String[] strArr = s.split("");
        int idx = 0;
        
        for (int i = 0; i < strArr.length; i++) {
            if (strArr[i].equals(" ")) {
                idx = 1;
            }
            
            answer += idx % 2 == 0 ? strArr[i].toUpperCase() : strArr[i].toLowerCase();
            idx++;
        }
        
        return answer;
    }
}

 

코드 풀이

  1. idx 변수는 각 단어가 짝수 번째인지 홀수 번째인지 판단하기 위한 용도로 사용된다.
  2. 주어진 문자열 s를 split() 함수를 사용하여 배열로 변환한다.
  3. 배열 길이만큼 반복하여 짝수 번째인지 홀수 번째인지 판단한다.
  4. 만약 현재 문자가 공백인 경우 idx를 1로 설정하여 다음 단어가 짝수 번째에 위치하도록 한다.
  5. 현재 단어가 짝수 번째일 경우 대문자, 홀수 번째일 경우 소문자로 변환하여 answer에 이어붙인다.
반응형