정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.
2 ≤ n_str ≤ 10
n_str이 "0"으로만 이루어진 경우는 없습니다.
n_str | result |
---|---|
"0010" | "10" |
"854020" | "854020" |
입출력 예 설명
입출력 예 #1
"0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다.입출력 예 #2
"854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다.
function solution(n_str) {
return String(Number(n_str))
}
function solution(n_str) {
return n_str.replace(/^0+/, '');
}
Number()
는 '000010'의 문자열인 경우
앞에 0
은 생략해 10를 반환한다.
parseInt
, Number
둘다 '0...1' 부터 시작하는 문자열이 인 경우 0을 제외한다.
/(^0+)/
는 정규 표현식으로
^
: 줄(Line)의 시작에서 일치(Line의 시작 지점)+
: 1회 이상 연속으로 반복되는 문자에 가능한 많이 일치(1개 이상은 포함되어야 한다.)/(^0+)/
는 맨 앞에서 부터 연속 된 0을 찾는 것을 의미한다.
Number()에 이런 특징이 있다는 것을 알게 되었다.
각 메서드 마다의 특징을 파악해 상황에 따라 메서드를 사용하면 좋을 것 같다.
정규 표현식을 알아두면 좀 더 쉽게 코드를 작성할 수 있지 않을까 싶다.
시간이 된다면 따로 공부해 봐야겠다.
정규 표현식 공부하기 좋은 사이트
https://heropy.blog/2018/10/28/regexp/