프로그래머스 : 0 떼기

Digeut·2024년 4월 4일
0

프로그래머스

목록 보기
153/164

❔문제설명

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

🤔아이디어

String을 List타입으로 바꿔서 remove를 활용하면 되지않을까? 반복문을 돌면서 처음으로 0이 아니면 반복문 탈출해서 그 이후의 값은 문자열로 반환시키고

❌틀린코드

class Solution {
    public String solution(String n_str) {
        String answer;
        List<String> strArr = new ArrayList<>(Arrays.asList(n_str));
        for(int i = 0 ; i < n_str.length(); i++){
            if(strArr[i].equals("0")){
                strArr.remove(i);
            } else {
                break;
            }
        }
        answer = Arrays.toString(strArr);
        return answer;
    }
}

🙄오류


지금 n_str이 나눠져있지 않으니까 List에 담을수가 없구나

❌틀린코드2

import java.util.*;

class Solution {
    public String solution(String n_str) {
        String answer;
        String[] strArr = n_str.split("");
        for(int i = 0 ; i < n_str.length(); i++){
            if(strArr[i].equals("0")){
                // strArr.remove(i);
                strArr[i] = ""; // 해당 요소를 빈 문자열로 변경
            } else {
                break;
            }
        }
        answer = Arrays.toString(strArr);
        return answer;
    }
}

🙄오류2


빈문자열이 그대로 담긴 String[]형태로 반환되네...
StringBuilder사용해서 담을까?

💡코드풀이

import java.util.*;

class Solution {
    public String solution(String n_str) {
        String answer;
        String[] strArr = n_str.split("");
        for(int i = 0 ; i < n_str.length(); i++){
            if(strArr[i].equals("0")){
                strArr[i] = ""; 
            } else {
                break;
            }
        }
        StringBuilder sb = new StringBuilder();
        for(String str : strArr){
            sb.append(str);
        }
        
        answer = sb.toString();
        
        return answer;
    }
}
profile
개발자가 될 거야!

0개의 댓글