0떼기

문제 설명
정수로 이루어진 문자열 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합니다.

2. 답안

2-1. Javascript

해결포인트

앞부분만 떼야하니까 shift()메서드를 사용해야한다. 제거하고 arr[0]이 0일 때까지 제거를 반복한다.

내 코드

COPY
function solution(n_str) {
    let arr = [...n_str]

    while(arr[0] == 0){
        arr.shift()
    }

    return arr.join("")
}

다른 해결방법

0 떼는건 그냥 숫자로 바꿔주면 해결되는 건데, 요즘 반복문 문제만 풀어봐서 그런가 이 방법을 생각못했다.

COPY
const solution = (str) => String(Number(str))

그 외에도 아래 같은 풀이도 좋은 방법인 것 같다.

COPY
const solution=s=>+s+''

function solution(n_str) {
  return n_str.replace(/^0+/, '');
}

2-2. Swift

그렇다면 swift로도 문자 -> 숫자-> 문자 과정을 거쳐 풀어보자.

단, Swift에서 문자열(String)을 숫자(Number)로 변환할 때 옵셔널(Optional)이 발생하므로 해당 부분에 대한 처리가 필요하다.

COPY
import Foundation

func solution(_ n_str:String) -> String {
    return String(Int(n_str)!) 
}
다음 게시물
길이에 따른 연산

© 2023 - 2024 xohxe. All Rights Reserved.