반응형
4월 5일에 풀었는데 티스토리 오류로 오늘 올렸다.
https://school.programmers.co.kr/learn/courses/30/lessons/181847s
✅ 문제
정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.
제한 사항
- 2 ≤ n_str ≤ 10
- n_str이 "0"으로만 이루어진 경우는 없습니다.
입출력 예
n_str | result |
"0010" | "10" |
"854020" | "854020" |
🔎 풀이 방법
문자열을 배열로 만들어 인덱스 0 부터 0인지 아닌지 검사한다.
0이 아닌 수를 만난 경우, 해당 수의 인덱스를 flag에 담아서 answer 배열에 해당 인덱스의 값부터 push 해준다.
split()안에 어떻게 구분할 지 명시하지 않아서 [ ‘0010’ ] 이런 식으로 나눠져서 테스트 케이스에서 틀리게 나왔다. 내가 원한 결과는 [’0’, ‘0’, ‘1’, ‘0’]이어서 split(’’)으로 구분자를 적어주니 해결되었다.
String.prototype.split() - JavaScript | MDN
💻 코드
function solution(n_str) {
let newArr = n_str.split('');
let answer = [];
let flag = 0;
for(let i = 0; i < n_str.length; i++) {
if(Number(newArr[i]) !== 0) {
flag = i;
break;
}
}
for(let j = flag; j < n_str.length; j++) {
answer.push(newArr[j]);
}
return answer.join('');
}
👀 추가 공부
number로 바꾸면 0이 아닌 숫자의 앞에 0이 붙은 경우, 0이 아닌 숫자부터 숫자로 세기 때문에 숫자 앞의 0을 없앨 수 있다.
const solution = (str) => String(Number(str))
반응형
'🔥 CodingTest > 프로그래머스' 카테고리의 다른 글
[Lv.0] 배열에서 문자열 대소문자 변환하기 (0) | 2024.04.09 |
---|---|
[Lv.0] 뒤에서 5등까지 (0) | 2024.04.08 |
[Lv.0] 배열 만들기 1 (0) | 2024.04.03 |
[Lv.0] 두 수의 연산값 비교하기 (0) | 2024.04.02 |
[Lv.0] n의 배수 고르기 (0) | 2024.03.23 |