Skip to main content

63. [Java] I로 만들기

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

  • 알파벳 소문자로 이루어진 문자열 myString이 주어진다.
  • 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return

  • 1 ≤ myString ≤ 100,000
    • myString은 알파벳 소문자로 이루어진 문자열

정답코드

class Solution {
    public String solution(String myString) {
        StringBuilder sb = new StringBuilder();
        for (char c : myString.toCharArray()) {
            if (c < 'l') {
                c = 'l';
            }
            sb.append(c);
        }
        
        return sb.toString();
    }
}
  1. StringBuilder 객체 선언
  2. myString을 toCharArray()로 char 배열로 변환
  3. 배열 순회하며 각 char이 l보다 작은 경우에만 l로 변환하기

처음에는 문제에서 알파벳을 I(대문자 아이)로 봐서 오답처리 되었으나 l(소문자 엘)로 수정해서 해결했다. 입력이 소문자로만 주어진다고 했기 때문에 따로 String.toLowerCase()나 String.toUpperCase()로 처리 안해줘도 된다. 그리고 char 타입끼리 순서 비교는 < 연산자로 가능하다. 내부에서 아스키코드 값으로 비교하기 때문이다.