
내가 생각했을때 문제에서 원하는부분
정수로 이루어진 문자열 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
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.