Jam's story

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

코딩테스트/프로그래머스

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

애플쩀 2022. 8. 9. 12:59
package programmers;

import java.util.Arrays;

public class 이상한문자만들기 {
    public  static String solution(String s) {
        String answer = "";
        String[] sp=s.split(" ");
        char[] arr = null;
        for(int i=0; i<sp.length; i++){
             arr=sp[i].toCharArray();
            
             for (int j = 0; j < arr.length; j++) {
            	 if(arr[j]==' ') { answer+=" "; continue;}
            	 else if((j%2)==0) {
					arr[j]=Character.toUpperCase(arr[j]);
				}else {
					arr[j]=Character.toLowerCase(arr[j]);
				}
            	answer+=arr[j];
			}//for-j
            if(i!=sp.length-1) answer+=" ";
        }//for-i
        System.out.println(answer);
        return answer;
    }
    public static void main(String[] args) {
		String s="try hello world";
		solution(s);
	}
}

 

4,5,8,9,11  테스트 실패

각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 이것을 해결 해야할듯

 

해결한 코드

 

 

  • for문 안에서 char 배열로 바꿔주고 , char 문자를 하나씩 돌린다.
  • 인덱스는 0부터 시작
  • 공백이라면, 인덱스를 0으로 맞춰주어 다시 세게 해주고, sb에 추가해준다.
  • 인덱스가 짝수라면,  (그 후에, 인덱스를 올리고 ) 대문자
  • 홀수라면 소문자로
  • 답 반환
package programmers;

public class 이상한문자만들기 {
    public  static String solution(String s) {
    	StringBuilder sb=new StringBuilder();
    	
    	int index=0; 
    	for(char c: s.toCharArray()) {
    		if(c==' ') {
    		index=0; 
    		sb.append(" ");}
    		else if(index++%2==0) {
    			sb.append(Character.toUpperCase(c));
    		}else {
    			sb.append(Character.toLowerCase(c));
    		}
    	}
    	System.out.println(sb.toString());
        return sb.toString();
    }
    public static void main(String[] args) {
		String s="try hello world";
		solution(s);
	}
}
Comments