Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

승띵이의 개발일지

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

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

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

승띵이 2022. 10. 26. 00:03

 

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

 

 

프로그래머스

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

programmers.co.kr

 

문제 설명

 

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

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

 

입출력 예

 

 

코드

 

class Solution {
    public String solution(String s) {
        String answer = "";
        s = s.toLowerCase();
        String[] str = s.split("");
        int space = 0;
        
        for (int i = 0; i < str.length; i++) {
            if(str[i].equals(" ")){
                space = 0;
            } else if (space % 2 == 0) {
                str[i] = str[i].toUpperCase();
                space++;
            } else {
                space++;
            }
            answer += str[i];
        }
        return answer;
    }
}

 

나의 풀이

 

1. 일단 파라미터 s를 소문자로 변환하였다.

2. 그 후 한 글자씩 잘라서 새로운 배열 str에 저장하였다.

3. 공백 변수 int space를 만들었다.

4. str의 길이만큼 for문을 돌려서 만약 str[i]가 공백이라면 space를 0으로 초기화.

5. space가 짝수이면 str[i]를 toUpperCase() 메서드를 사용하여 대문자로 만들어서 저장 후 space++

6. str[i]가 홀수이면 space++ 수행

7. 그리고 answer에 str[i]를 더해준다.

8. answer 리턴

 

한줄평

 

최근에 푼 문제중에 젤 오래 풀었다. 거의 머 4~5시간은 생각한듯.. 학원에서 다른 사람들도 머리 싸매고 못풀고 있는거 보고 위안을 삼았지만 그 중에선 내가 젤 늦게 풀었다는 사실... 오기로 구글링 안하긴 했는데 이게 맞나 싶었던 문제..ㅋ

근데 풀고나서 보니까 왤케 쉬워보이냐 열받게

Comments