Algorithm) Codekata_Day 14

김명성·2021년 8월 6일
0

Algorithm

목록 보기
15/61
post-thumbnail

❓ Question

숫자 배열에서 0을 모두 뒤로 가게 하기
:: 조건 1 - 0이 아닌 숫자의 순서는 변하지 않고 그대로
:: 조건 2 - 새로운 배열 생성 하지 않기

📝 My Solution

반복문을 통해서 0이 나오면 해당 부분을 잘라내고, 0이 맨 뒤에 올 수 있도록 했는데,
이렇게 진행하면 연달아 나오는 0을 발견하지 못하고 지나가는 문제가 발생했다.

그래서 같은 반복문을 한번 더 사용해 남아있는 0도 뒤로 갈 수 있도록 했다.
반복문의 반복을 통해 문제를 해결했다.


📝 Another Solution

비슷한 방법이지만 반복문을 한번만 사용하는 경우도 있다.

이 반복문은 시작을 뒤에서부터 할 수 있도록 하는 방법이다.

맨 처음 사용했던 방법은 splice() 가 진행되고,
하나씩 당겨진 인덱스로 되기 때문에 연달아 나오는 0을
읽지않고 지나가는 상황이 발생했는데,
뒤부터 훑고 오게 되면 바로 다음 것을 읽게 되기 때문에
반복문 한번만 사용해도 같은 결과를 낼 수 있었다.


📝 Another Solution 2

이번에는 1줄로 끝낼 수 있는 방법이다.

filter 함수과 concat을 이용해서
조건에 해당하는 숫자들을 나눈 뒤에, 다시 합쳐주는 방식으로 푸는 방법이다.

새로운 배열을 변수 선언 형식으로 생성하지 않았기 때문에
뭐 새로운 배열을 생성하지 말라는 조건에 어느정도 부합하는 방법이지 않나 싶다.


▪️ Solution review

생각보다 간단한 문제였지만,
하나의 문제로도 여러 풀이 방법들을 볼 수 있어서
여러가지 사고의 폭을 넓혀볼 수 있는 문제였다.

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보