자두의 데브로그

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

코딩테스트/Java

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

왕자두 2024. 10. 7. 21:32

https://school.programmers.co.kr/learn/courses/30/lessons/12930#

 

프로그래머스

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

programmers.co.kr

 

처음에 이해했을 때는 되게 쉽겠구나 싶어서 풀었는데 결국 풀다 풀다 모르겠어서 힌트를 봤다. 이 문제의 핵심은 문자열을 이루는 단어들 사이에 "하나 이상의 공백문자"를 가지고 있다는 것이었다. 이걸 생각을 못하고 s.split(" ")으로 무조건 단어 사이에 하나의 공백만 존재하는 줄 알고 풀었으나 완벽히 틀린 방법이었다.

 

다시 푼 방법은 s의 모든 문자를 쪼개서 arr에 저장하고, idx가 0이 되면 %2 할 때 division 오류가 발생해서 idx를 1부터 시작하면서도 처음부터 공백인지 확인하고, 공백이라면 1로, 공백이 아니라면 2로 증가시켜서 짝수번째 인덱스인지 홀수번째 인덱스인지 확인 가능하도록 코드를 작성했다. 개인적으로 이 문제를 .. 코테에서 만났다면 처음에 이해한대로 풀고 맞았다고 자신했을 것 같다는 생각에 코테의 길은 멀고도 험하구나... 다시 한 번 느끼게 되었다..

import java.util.*;

class Solution {
    public String solution(String s) {
        String[] arr = s.split("");

        String answer = "";
        int idx = 1;
        for(String a : arr){
            if(a.contains(" ")) idx = 1;
            else idx++;
            if(idx % 2 == 0) answer += a.toUpperCase();
            else answer += a.toLowerCase();
        }
        return answer;
    }
}

 

문제 좀 잘 보고 풀자 ^^