본문 바로가기
  • Jetpack 알아보기
프로그래머스 - JAVA/Level 1

[JAVA] 프로그래머스 Lv.1 : 이상한 문자 만들기

by 새우버거♬ 2021. 4. 3.

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

 

 

예제:

 

Input:
s : "try hello world"
Output:

"TrY HeLlO WoRlD"

 

제한 조건:

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

 

 

 

 


 

Solution #1

class Solution {
    public String solution(String s) {
        String[] array = s.split(" ", -1);
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < array.length; i++) {
            builder.append(convertWord(array[i]));
            if (i < array.length - 1) builder.append(" ");
        }
        return builder.toString();
    }

    private String convertWord(String str) {
        String[] array = str.split("", -1);
        System.out.println(array.length);
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < array.length; i++) {
            builder.append((i % 2 == 0) ? array[i].toUpperCase() : array[i].toLowerCase());
        }
        return builder.toString();
    }
}

 

Result #1

 

💡 String s를 배열로 만들고, for 반복문을 사용하여 문제를 정직하게 풀었다.  

 

 


 

Solution #2

class Solution {
    public String solution(String s) {
        StringBuilder answer = new StringBuilder();
        String[] array = s.split("");
        int count = -1;

        for (String str : array) {
            count = str.equals(" ") ? -1 : count + 1;
            answer.append((count % 2 == 0) ? str.toUpperCase() : str.toLowerCase());
        }
        return answer.toString();
    }
}

 

Result #2

 

💡 " " 공백 문자가 나올 때, count 값을 초기화 시켜주고, 그 외 문자엔 count 값을 증가시킨다. 그럼 따로 공백문자를 기준으로 String 배열을 만들지 않아도 각 단어의 index 값을 알 수 있다.

 

 

 


 

More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.programmers

 

ggujangi/ggu.programmers

프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.

github.com

 

 

 

출처 : 프로그래머스