본문 바로가기
알고리즘/코딩 - 프로그래머스

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

by 주남2 2019. 4. 6.
반응형

문제 설명

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

 

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다.

생각

글을 쓰면서 내가 처음에 푼 풀이를 봤는데.. 다시 봐도 이해가 되지 않는 코드였다. 그래서 처음부터 다시 풀기로 하였다. 처음엔 문제가 잘 이해가 안갔다. 예시를 보면서 이해하도록 하자. hello my friend의 예시를 들자. 문자의 전체 인덱스가 아니라 공백 별로 인덱스를 판단해야 한다!! 이 부분을 잘 생각하면 hello, my, friend로 나눠서 생각해야 한다.

hello -> HeLlo my -> My  frieng -> FrIeNd로 변해야 할 것이다. 그렇다면 공백이 나올 때마다 현재의 인덱스를 0으로 만들어주고 뒤의 단어들의 인덱스를 검사해서 홀수이면 toLowerCase()로 짝수이면 toUpperCase()로 바꿔야 할 것이다. 

 

코드

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
class Solution {
      public String solution(String s) {
          String answer = "";
          char ch = 0;
          int index = 0;
          
          for(int i=0; i<s.length(); i++) {
              if(s.charAt(i) == ' ') {
                  ch = s.charAt(i);
                  index = 0;
              } else {
                  index += 1;
                  if(index%2!=0) {
                      ch = Character.toUpperCase(s.charAt(i));
                  } else {
                      ch = Character.toLowerCase(s.charAt(i));
                  }
              }
              
              answer += ch;
          }
          
          return answer;
      }
    }
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 처음에 푼 것을 웬만하면 올리겠지만 너무 부끄러워서 차마 올리지 못했다. 그래도 다행인 점은 나의 코드에 대해 부끄러워할 수 있는 걸 자각한 점이다.  시간이 지나도 자신의 코드를 봤을 때 부끄럽지 않으면 실력이 나아지지 않은 것이라고 누군가가 말했다. 아직도 부족한 실력이지만 그나마 나아졌다 생각하니 위로가 되었다.

반응형