숫자 배열에서 0을 모두 뒤로 가게 하기
:: 조건 1 - 0이 아닌 숫자의 순서는 변하지 않고 그대로
:: 조건 2 - 새로운 배열 생성 하지 않기
반복문을 통해서 0이 나오면 해당 부분을 잘라내고, 0이 맨 뒤에 올 수 있도록 했는데,
이렇게 진행하면 연달아 나오는 0을 발견하지 못하고 지나가는 문제가 발생했다.
그래서 같은 반복문을 한번 더 사용해 남아있는 0도 뒤로 갈 수 있도록 했다.
반복문의 반복을 통해 문제를 해결했다.
비슷한 방법이지만 반복문을 한번만 사용하는 경우도 있다.
이 반복문은 시작을 뒤에서부터 할 수 있도록 하는 방법이다.
맨 처음 사용했던 방법은 splice()
가 진행되고,
하나씩 당겨진 인덱스로 되기 때문에 연달아 나오는 0을
읽지않고 지나가는 상황이 발생했는데,
뒤부터 훑고 오게 되면 바로 다음 것을 읽게 되기 때문에
반복문 한번만 사용해도 같은 결과를 낼 수 있었다.
이번에는 1줄로 끝낼 수 있는 방법이다.
filter
함수과 concat
을 이용해서
조건에 해당하는 숫자들을 나눈 뒤에, 다시 합쳐주는 방식으로 푸는 방법이다.
새로운 배열을 변수 선언 형식으로 생성하지 않았기 때문에
뭐 새로운 배열을 생성하지 말라는 조건에 어느정도 부합하는 방법이지 않나 싶다.
생각보다 간단한 문제였지만,
하나의 문제로도 여러 풀이 방법들을 볼 수 있어서
여러가지 사고의 폭을 넓혀볼 수 있는 문제였다.