내일배움캠프

20250304

limdae94 2025. 3. 4.

코딩테스트

이상한 문자 만들기

 

프로그래머스

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

programmers.co.kr

 

제출한 코드

class Solution {
    public String solution(String s) {
    StringBuilder answer = new StringBuilder();
    int idx = 0; 

    for (int i = 0; i < s.length(); i++) {
      char c = s.charAt(i);
      if (c == ' ') {
        answer.append(c);
        idx = 0;  
      } else {
        if (idx % 2 == 0) {
          answer.append(Character.toUpperCase(c));
        } else {
          answer.append(Character.toLowerCase(c));
        }
        idx++;
      }
    }
    return answer.toString();
  }
}

 

 

20250304 - 코딩테스트

제한 사항을 보고, 먼저 각 단어를 기준으로 배열에 저장한 다음에 각 단어마다 인덱스를 기준으로 대소문자를 요구사항에 따라서 변환했다. 그리고 각 단어는 [입출력 예]처럼 공백 한 개를 두었는데 계속 문제에 통과하지 못했다. 그 이유는 공백을 없애는 것이 아니라 공백을 포함한 채로 반환해야 하는 문제이다.

 

위의 [입출력 예]와 다르게 "try    hello    world"이면 "TrY    HeLlO    WoRlD"가 정답이다.
내가 생각한 정답은 "TrY HeLlO WoRlD"인 줄 알아서 계속 오답처리가 됐다. 

 

Input에서는 한 개 이상의 공백이 올 수 있다는 사실은 명확히 잘 알고 있다. 근데,Output에서는 별도로 공백에 대한 기준이 명시되어 있지 않기 때문에 오랫동안 헤매고 있었다. 즉, 문제의 핵심은 각 단어 내에서 짝수번째, 홀수번째 알파벳을 각각 대문자와 소문자로 바꾸는 것이고, 공백은 단어 구분자로 사용된다는 점이라고 생각한다. 어쩌면 나의 실수처럼 Output에서도 공백을 포함하느냐 안하느냐가 가장 큰 관건이지 않을까 생각이 든다. 

'내일배움캠프' 카테고리의 다른 글

20250306  (0) 2025.03.06
20250305  (0) 2025.03.05
20250303  (0) 2025.03.02
2025년 03월 01일  (0) 2025.03.01
0228  (0) 2025.03.01

댓글