[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을 뗀 문자열”이라고 하기에 다음과 같이 이해했다.
- 문제 예시에서
0010
은010
로 리턴하는 건가 ?- 왼쪽에서 가장 처음 등장하는 0을 뗸 것
입출력 예 설명에서 “가장 왼쪽에 연속으로 등장하는 ‘0’을 모두 제거하기 때문에 ‘10”이라는 표현을 보고 방향을 수정해서 품
Enhanced
다른 사람 풀이
Solution
public String solution(String n_str) {
return "" + Integer.parseInt(n_str);
}
앞의 숫자가 0으로 시작하기 때문에 Int로 변환하면 앞의 0은 날아가는 특징을 활용한 건가 보다.
Leave a comment