이상한 문자 만들기
문제 설명
문자열 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
'알고리즘 연습' 카테고리의 다른 글
| [ 프로그래머스 ] 시저암호 JAVA (0) | 2020.08.01 | 
|---|---|
| [ 프로그래머스 ] 키패드 누르기 JAVA (0) | 2020.07.31 | 
| [ 프로그래머스 ] 자연수 뒤집어 배열로 만들기 JAVA (0) | 2020.05.04 | 
| [ 프로그래머스 ] 정수 내림차순으로 배치하기 JAVA (0) | 2020.05.04 | 
| [ 프로그래머스 ] 제일 작은 수 제거하기 JAVA (0) | 2020.05.04 | 
 너구리의 코딩 블로그
                  너구리의 코딩 블로그