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

2026. 5. 4. 11:13·프로그래머스
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 


 

 

문제

 

 

제출한 코드

class Solution {
    public String solution(String s) {
        char[] arr = s.toCharArray();
        StringBuilder sb = new StringBuilder();
        
        int index = 0;
        
        for (char c : arr) {
            if (c == ' ') {
                sb.append(" ");
                index = 0;
            } else {
                if (index % 2 == 0) sb.append(Character.toUpperCase(c));
                else sb.append(Character.toLowerCase(c));
                index++;
            }
        }
        
        return sb.toString();
    }
}

 

 

풀이

먼저 입력 받은 문자열 s 를 Char 배열로 바꿔주고, 변환된 문자열을 반환하기 위해 StringBuilder를 선언해주었다.

공백으로 나뉘어진 각 문자열에 대하여 index가 짝수일 경우에는 대문자로, 홀수일 경우에는 소문자로 치환해야 하므로 우선적으로 Char 배열 안에 있는 문자가 공백인지를 먼저 판단해주었다.

만약 공백일 경우 StringBuilder에 그대로 공백을 추가해주고, index는 0으로 설정해주었다.

공백이 아닐 경우 해당 index의 값이 짝수인지 홀수인지를 판단하여 문제에 맞게 치환하여 StringBuilder에 추가해준 후 완성된 문자열을 반환해주었다.

 

처음에는 아래와 같은 코드로 제출했었다.

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

        for (String val : arr) {
            String[] str = val.split("");
            for (int i = 0; i < str.length; i++) {
                if (i % 2 == 0)
                    sb.append(str[i].toUpperCase());
                else
                    sb.append(str[i].toLowerCase());
            }
            sb.append(" ");
        }

        return sb.toString().trim();
    }
}

Default로 추가되어 있던 테스트 케이스는 통과했었지만, 위와 같이 작성하면 공백 처리가 제대로 처리되지 않아, 다른 테스트 케이스틀에는 실패가 떴었다. 앞으로는 문제를 잘 읽고 더욱 폭 넓게 생각해야겠다.

'프로그래머스' 카테고리의 다른 글

[프로그래머스] 81301번 - 숫자 문자열과 영단어 [Java]  (0) 2026.05.11
[프로그래머스] 12926번 - 시저 암호 [Java]  (0) 2026.05.08
[프로그래머스] 68935번 - 3진법 뒤집기 [Java]  (0) 2026.04.30
[프로그래머스] 12950번 - 행렬의 덧셈 [Java]  (0) 2026.04.16
[프로그래머스] 12918번 - 문자열 다루기 기본 [Java]  (0) 2026.04.15
'프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 81301번 - 숫자 문자열과 영단어 [Java]
  • [프로그래머스] 12926번 - 시저 암호 [Java]
  • [프로그래머스] 68935번 - 3진법 뒤집기 [Java]
  • [프로그래머스] 12950번 - 행렬의 덧셈 [Java]
이서라다
이서라다
  • 이서라다
    개발일지
    이서라다
  • 전체
    오늘
    어제
    • 전체 보기 (79)
      • 내일배움캠프 (21)
        • TIL (21)
      • 프로그래머스 (23)
      • Algorithm (2)
      • BackEnd (0)
        • Spring (0)
      • Language (4)
        • JAVA (4)
      • Git (2)
      • 백준 - Java (25)
        • 입출력과 사칙연산 (6)
        • 반복문 (8)
        • 1차원 배열 (1)
        • 문자열 (7)
        • 2차원 배열 (1)
        • 조합론 (1)
        • 정렬 (1)
      • IDE (1)
        • IntelliJ (1)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    til
    내일배움캠프
    jdk삭제
    티스토리스킨
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이서라다
[프로그래머스] 12930번 - 이상한 문자 만들기 [Java]
상단으로

티스토리툴바