코딩테스트/프로그래머스

[프로그래머스] Lv.0 수 조작하기1(Java)

선SEON 2023. 11. 7. 22:04

1. 문제

 

2. 제출 답안

public int solution(int n, String control) {
	int answer = 0;
    for (int i = 0; i < control.length(); i++) {
        char c = control.charAt(i); // 문자열에서 i번째 문자 가져오기
        switch (c) {
            case 'w':
                n += 1;
                break;
            case 's':
                n -= 1;
                break;
            case 'd':
                n += 10;
                break;
            case 'a':
                n -= 10;
                break;
            default:
                // 알 수 없는 문자는 무시
                break;
        }
    }
    answer = n;
    return n;
}

 

3. 다른 풀이

class Solution {
    public int solution(int n, String control) {
        int answer = n;

        for(char ch : control.toCharArray()) {
            switch(ch) {
                case 'w': answer += 1; break;
                case 's': answer -= 1; break;
                case 'd': answer += 10; break;
                case 'a': answer -= 10; break;
                default:break;
            }
        }

        return answer;
    }
}

 

비슷하게 switch 문을 사용했지만, 

charAt() 대신 toCharArray()를 사용했다.

 

그리고 향상된 for문을 사용해서 좀 더 깔끔해보인다!

 

toCharArray()

toCharArray()는 문자열을 문자 배열로 변환하는 메서드. 이 메서드를 호출하면 문자열의 각 문자가 배열 요소로 복사된다.
이를 통해 문자열을 문자 단위로 조작하거나 처리하는 데 유용하다.
String str = "Hello";
char[] charArray = str.toCharArray();

// charArray는 ['H', 'e', 'l', 'l', 'o']가 됩니다.