알고리즘 연습

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

코딩하는 너구리 2020. 5. 4. 01:50
반응형

 

이상한 문자 만들기

 

 

문제 설명

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

 

제한 사항

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

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

     

입출력 예

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) {
		StringBuilder sb = new StringBuilder();
		int idx = 0;
		
      	String upper = s.toUpperCase();
		String lower = s.toLowerCase();
      
		for (int i = 0; i < s.length(); i++) {		
			if(s.charAt(i) == ' ') {
				sb.append(' ');
				idx = 0;
			} else {
				if(idx % 2 == 0) {
					sb.append(upper.charAt(i));
					idx++;
				} else {
					sb.append(lower.charAt(i));
					idx++;
				}
			}
		}

        String answer = sb.toString();
        return answer;
  }
}

 

 

Stringbuilder 를 활용하여 풀이하였습니다.

 

먼저 문제에서 주어지는 s를 사용하여 upper와 lower를 만들었습니다.

 

이후 for문을 반복하면서 공백을 만났을 경우, idx 값을 0으로 초기화해준 뒤 공백을 붙여주었습니다.

 

공백이 아닌 문자를 만났을 때에는 **idx % 2** 값이 0인 경우 upper에서 문자를 붙여주고, 0이 아닌 경우에는 lower에서 문자를 붙여주었습니다.

 

 

 

 

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

 

프로그래머스

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

programmers.co.kr

 

반응형