프로그래머스 0 떼기

KIMYEONGJUN·2026년 7월 31일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

solution 메서드는 문자열 n_str의 가장 왼쪽부터 문자를 하나씩 검사한다.
idx 변수를 0부터 시작해 문자열 길이 전까지 반복하며, n_str.charAt(idx)가 '0'이면 idx를 1씩 증가시킨다.
반복문이 종료되면 idx는 '0'이 아닌 첫 번째 문자의 위치가 된다.
이후 n_str.substring(idx) 메서드를 사용해, 첫 '0'이 아닌 문자 위치부터 끝까지의 부분 문자열을 반환한다.
만약 문자열 처음에 '0'이 없으면 idx는 0 이므로 원본 문자열 전체가 반환된다.
main 메서드에서는 두 가지 예시로 solution을 호출해 결과를 출력한다.
"0010"이 입력되면 앞의 두 개 '0'이 제거되어 "10"이 출력된다.
"854020"의 경우 앞에 '0'이 없으므로 원래 문자열 그대로 출력된다.

코드로 구현

class Solution {
    public String solution(String n_str) {
        int idx = 0;
        while (idx < n_str.length() && n_str.charAt(idx) == '0') {
            idx++;
        }
        
        String answer = n_str.substring(idx);
        return answer;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 0 떼기
public class Main98 {
    public static String solution(String n_str) {
        int idx = 0;
        while (idx < n_str.length() && n_str.charAt(idx) == '0') {
            idx++;
        }
        return n_str.substring(idx);
    }

    public static void main(String[] args) {
        // 테스트 코드 예시
        System.out.println(solution("0010"));     // 출력: 10
        System.out.println(solution("854020"));   // 출력: 854020
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글