프로그램머스 이상한 문자 만들기 (JAVA)

2026. 5. 21. 16:56·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

문자열이 주어졌을 때
각 단어의 짝수 인덱스 문자는 대문자,
홀수 인덱스 문자는 소문자로 변환하는 문제

 

주의할 점은 문자열 전체 기준이 아니라
공백을 기준으로 단어마다 인덱스를 다시 계산해야 한다.


📌 접근 방법

문자열을 한 글자씩 순회하면서 처리했다.

  • 공백이면
    • 공백 추가
    • index를 0으로 초기화
  • 공백이 아니면
    • 짝수 인덱스 → 대문자
    • 홀수 인덱스 → 소문자

문자열 수정이 많기 때문에 StringBuilder를 사용했다.


📌 핵심 아이디어

단어별 인덱스를 따로 관리해야 한다.

try hello world
012 01234 01234

공백 이후에는 다시 0번 인덱스부터 시작

if(s.charAt(i) == ' '){
    index = 0;
}

 


📌 전체 코드

class Solution {
    public String solution(String s) {
       
        int index = 0;
        StringBuilder sb = new StringBuilder();
        
        for(int i = 0; i < s.length(); i++){

            if(s.charAt(i) == ' '){
                sb.append(" ");
                index = 0;
            } else if(index % 2 == 0){
                sb.append(Character.toUpperCase(s.charAt(i)));
                index++;
            } else {
                sb.append(Character.toLowerCase(s.charAt(i)));
                index++;
            }
        }
        
        return sb.toString();
    }
}

📄 정리

이 문제는 문자열 자체보다
“공백 기준으로 인덱스를 초기화해야 한다”는 조건이 핵심이었다.

 

또한 문자열을 반복해서 더하는 대신
StringBuilder를 사용하는 문자열 처리 방식도 함께 익힐 수 있었다.

 

728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 3진법 뒤집기 (JAVA)  (0) 2026.05.22
프로그래머스 최소직사각형 (JAVA)  (0) 2026.05.22
프로그래머스 삼총사 JAVA 풀이 (브루트포스, 조합, 시간복잡도)  (0) 2026.05.20
프로그래머스 최대공약수와 최소공배수 JAVA 풀이 (유클리드호제법, 시간복잡도)  (0) 2026.05.18
프로그래머스 크기가 작은 부분문자열 JAVA 풀이 (문자열, substring, 시간복잡도)  (0) 2026.05.17
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 3진법 뒤집기 (JAVA)
  • 프로그래머스 최소직사각형 (JAVA)
  • 프로그래머스 삼총사 JAVA 풀이 (브루트포스, 조합, 시간복잡도)
  • 프로그래머스 최대공약수와 최소공배수 JAVA 풀이 (유클리드호제법, 시간복잡도)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

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

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    level1
    Level2
    배열
    java
    level0
    springboot
    문자열
    백엔드개발자
    정처기실기
    dp
    완전탐색
    정렬
    알고리즘
    브루트포스
    프로그래머스
    시뮬레이션
    기출문제
    정보처리기사 실기 기출문제
    정처기
    백준
    구현
    정보처리기사
    자료구조
    자바
    실기
    수학
    피보나치
    정처기오답노트
    코딩테스트
    solved.ac
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그램머스 이상한 문자 만들기 (JAVA)
상단으로

티스토리툴바