This is a blog.

이상한 문자 만들기 본문

RECORD/Programmers

이상한 문자 만들기

Calcot 2023. 3. 26. 17:52

문제 설명


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

제한 사항

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

 

입출력 예

s return
"try hello world"  "TrY HeLlO WoRlD"

 

입출력 예 설명


"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

 

 

 

내가 푼 답 - Java

class Solution {
    public String solution(String s) {
        
        String answer = "";
        String[] arr = s.split("");
        
        int index = 0;        
        for(int i=0; i<arr.length; i++){            
            
            String ch = " ";   
            
            if(!arr[i].isBlank()) {
                if(index % 2 == 0){
                    ch = arr[i].toUpperCase(); 
                } else if(index % 2 != 0){
                    ch = arr[i].toLowerCase();
                }
                index++; 
            } else {
                index = 0;
            }

            answer += ch;
            
        }
        
        return answer;
    }
}


// ------------------------------------------------------------------------------------------
// 위와 같은 코드 간략하게 작성.
class Solution {
    public String solution(String s) {
        
        String answer = "";
        String[] arr = s.split("");
        
        int index = 0;        
        for(int i=0; i<arr.length; i++){            
            
            String ch = " ";   
            
            if(!arr[i].isBlank()) {                
                ch = index % 2 == 0 ? arr[i].toUpperCase() : arr[i].toLowerCase();      
                index++; 
            } else {
                index = 0;
            }

            answer += ch;
            
        }
        
        return answer;
    }
}

 

 

 

코딩테스트 후기

 

1) 테스트 케이스는 통과했으나 '제출 후 채점하기'에서는 70% 정도밖에 성공하지 않아 원인을 찾았다. 알고 보니 "(공백)try(공백)hello(공백)world "과 같이 공백이 첫 번째 단어 앞에도 올 수 있었던 것이다.

2) 공백체크는 isBlank() 메서드로 한다.

'RECORD > Programmers' 카테고리의 다른 글

3진법 뒤집기  (0) 2023.03.26
같은 숫자는 싫어  (0) 2023.03.26
최대공약수와 최소공배수  (0) 2023.03.25
직사각형 별찍기  (0) 2023.03.25
행렬의 덧셈  (0) 2023.03.25
Comments