[JAVA]프로그래머스 : 0 떼기

문제 설명

정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

My Solution

Code

public static String solution(String n_str) {  
    int pos = 0;  
    for (char e : n_str.toCharArray()) {  
        if (e != '0') {  
            break;  
        }  
        pos++;  
    }  
    return n_str.substring(pos);  
}

Approach

가장 왼쪽에 등장하는 연속된 0의 개수를 제외하고 결과를 return 해야한다. 따라서 왼쪽에 등장하는 0의 개수를 세는 것으로 시작한다.

왼쪽에 등장하는 0의 수는 왼쪽부터 count를 증가시키며 0의 나오면 count에 1을 더하고 아니면 pass 한다.

Review

문제의 설명을 잘못 이해해서 “가장 왼쪽에 처음으로 등장하는 0을 뗀 문자열”이라고 하기에 다음과 같이 이해했다.

  • 문제 예시에서 0010010 로 리턴하는 건가 ?
    • 왼쪽에서 가장 처음 등장하는 0을 뗸 것

입출력 예 설명에서 “가장 왼쪽에 연속으로 등장하는 ‘0’을 모두 제거하기 때문에 ‘10”이라는 표현을 보고 방향을 수정해서 품

Enhanced

다른 사람 풀이

Solution

public String solution(String n_str) {
	return "" + Integer.parseInt(n_str);
}

앞의 숫자가 0으로 시작하기 때문에 Int로 변환하면 앞의 0은 날아가는 특징을 활용한 건가 보다.

Categories:

Updated:

Leave a comment