본문 바로가기
코딩테스트/프로그래머스 Lv.0

[코테/0레벨] 0 떼기

by moca7 2025. 2. 11.

 

 

 

 

 

 

ㅁ 내 풀이

 

class Solution {
    public String solution(String n_str) {
        
        String[] sArr = new String[n_str.length()];
        
        sArr = n_str.split("");
        
        String answer = "";
        boolean flag = false;
        
        for(int i=0; i<n_str.length(); i++){
            if(!flag){
                if(!sArr[i].equals("0")){
                    answer += sArr[i];
                    flag = true;
                }
            }else{
                answer += sArr[i];
            }
        }
        
        return answer;
    }
}

 

 

- 문자열을 split 메소드로 문자열 배열로 분할하고, 반복문 돌렸음.

- flag 변수를 둬서 "0"이 아닌 문자열이 나오면 그때부터 String형 변수 answer에 담아서 반환함.

 

 

 

 

ㅁ 다른 풀이

 

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

 

- 문자열을 숫자로 변환하면 자동으로 앞의 0들은 사라짐. 

- 그 후 빈 문자열과 합쳐서 다시 문자열로 반환.

 

 

 

ㅁ 다른 풀이

 

class Solution {
    public String solution(String n_str) {
        String answer = "";
        while(n_str.indexOf("0")==0){
            n_str = n_str.substring(1);
        }
        
        return n_str;
    }
}

 

 

class Solution {
    public String solution(String n_str) {

        while (true) {
            if (n_str.charAt(0) == '0') {
                n_str = n_str.substring(1);
            } else {
                return n_str;
            }
        }
        
    }
}

 

 

※ 문자열 추출

- substring( ) 메소드는 주어진 인덱스에서 문자열을 추출하며, 매개값의 수에 따라 두 가지 형태가 있다.

- substring(int beginIndex, int endIndex)는 시작 인덱스부터 끝 인덱스 이전 문자열을 추출하고,

substring(int beginIndex)는 주어진 인덱스부터 끝까지 문자열을 추출한다.