35. Queue 복습

홍인열·2021년 10월 9일
0

자료구조 코플릿 문제를 시간내에 다 풀지 못했다. 주말을 이용해 부족한 개념도 잡고 모다 푼 코플릿 문제도 풀어본다. 프린터 인쇄 인쇄목록의 Queue구조문제를 풀어냈다. 항상그렇지만 풀고나서 코드를보면 당연한 내용처럼 보인다. 길었던 코드가 점점 짧아지더니 테스트 통과되었을때는 예쓰!!를 외친다.

적절한 코드의 사용

코드를 작성했지만 시간초과로 테스트가 통과 되지 않는 경우가 종종 있었고 오늘도 역시 그랬다. 이런 경우 였다.

//원본배열이 수정된 배열이 필요할때!
// pop, push, shift, unshift, spice 같은 메서드는 원본배열을 변화시킨다.
// 그렇기 때문에 원본을 변화시키면 안좋을거 같은 느낌? 등을 이유로 slice를 이용해 새로운 변후에 배열을 재할당 해서 사용했다.

const fruits = ['appel', 'banana', 'mango']
// 'apple' 가 없는 배열이 필요 할 경우 다음의 방법들이 있다. (내수준에서..)

//1
fruits.shift()
//원본배열에서 0번째 인자를 제거한다.

//2
fruits.splice(0, 1)
//원본배열에서 0번째 부터 하나의 인자를 제거한다.

//2
const deleteApple = fruits.slice(1)
// slice를 이용해 새로운 1번째 인자부터 끝까지를 포함하는 배열을 생성한다.

특별한 이유가 없다면 나는 주로 slice를 이용한 편이었다. Queue를 사용할 때 필요한 건 똑같지만 적절한 코드가 따로 있다는 걸 알았다.

// fruits 라는 과일 목록이 있고 첫번째 과일을 목록에서 꺼내고 목록에 남아있는 과일이 무엇인지 알고싶을때!

// 코드의 적절한사용?의 중요성을 깨닿기 시작하기 전의 나는 
const fruits = ['appel', 'banana', 'mango']
const firstFruit = fruits[0]
const restFruits = fruits.slice(1)

// 코드의 적절한사용?의 중요성에 눈뜨기 시작하기 전의 나는 
const fruits = ['appel', 'banana', 'mango']
const getFruits = fruits.shift()

작은 차이같지만 나에겐 아주 큰 차이다 !
이런 깨닳음이 코드에 큰 변화를 줄것만 같다!!

Array.prototype.fill()

코플릿 풀려다가 새로운 메서드를 하나 배웠다. 배열의 길이가 정해져 있을때, 원하는 인자로 배열을 채울때 편리할 거 같다.

profile
함께 일하고싶은 개발자

0개의 댓글