[프로그래머스-기초] 0 떼기

JiEun·2023년 6월 12일
0

코테/코플릿

목록 보기
24/56

0 떼기

문제 설명

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

제한사항

2 ≤ n_str ≤ 10
n_str이 "0"으로만 이루어진 경우는 없습니다.

입출력 예

n_strresult
"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+)/는 맨 앞에서 부터 연속 된 0을 찾는 것을 의미한다.


✏️ 마치며

Number()에 이런 특징이 있다는 것을 알게 되었다.

각 메서드 마다의 특징을 파악해 상황에 따라 메서드를 사용하면 좋을 것 같다.

정규 표현식을 알아두면 좀 더 쉽게 코드를 작성할 수 있지 않을까 싶다.

시간이 된다면 따로 공부해 봐야겠다.

정규 표현식 공부하기 좋은 사이트
https://heropy.blog/2018/10/28/regexp/

profile
💻 프론트엔드를 목표로 성장 중! (알아봤던 내용 등을 정리하기)

0개의 댓글