[JAVA/프로그래머스] 연습문제: 이상한 문자 만들기

👀 문제

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

👊 도전

1. 설계

  1. 문자열 s를 문자로 쪼개어 배열에 저장한다.
  2. 공백이 나타나면 blank=0으로 초기화하여 단어별로 짝/홀수 인덱스를 판단하게 한다.
  3. 0과 짝수 인덱스에는 toUpperCase()를, 홀수에는 toLowerCase()를 이용한다.

2. 구현 (성공 코드)

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
/**
 *
 * @author HEESOO
 *
 */
 class Solution {
  public String solution(String s) {
      String answer = "";
      String[] array=s.split("");
      int blank=0;
      for(String str:array){
          if(str.equals(" ")){
              answer+=" ";
              blank=0;
              continue;
          }
          if(blank%2==0)
              answer+=str.toUpperCase();
          else
              answer+=str.toLowerCase();
          blank++;
      }
      return answer;
  }
}
 

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. split()함수로 문자열을 하나씩 쪼개서 배열에 저장한다.
  2. 공백이 나오면 인덱스를 0으로 초기화한다.
    • 공백 다음의 원소는 blank가 0이므로 첫 문자가 되고, 따라서 대문자로 바꾼다.
    • 공백이 나올 때까지 blank를 카운트한다.

👏 해결 완료!

처음에는 charAt()함수로 문자를 뽑아서 계산했는데, 인덱스 관리가 헷갈려서 다른 사람 코드를 참고했다. 이 문제는 split()를 쓰는게 더 간단하고 좋은 것 같다.