-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
김승우 4주차 과제 구현 #2
base: main
Are you sure you want to change the base?
Conversation
problem-1/SymbolTableWithArray.js
Outdated
get(key) { | ||
const node = this.#items.find((item) => item.key === key); | ||
|
||
return node?.item; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
get(key) {
return this.#items.find((item) => item.key === key)?.item;
}
이렇게 더 많이 쓰긴 합니다. 왜냐하면 node라는 변수 혹은 상수를 사용하는 순간
get(key) {
const node = this.#items.find((item) => item.key === key);
// 여기에 다른 누군가가 node를 가지고 무언가를 할 수 있는 가능성이 생김.
return node?.item;
}
그래서 아예 그런 의도를 차단할려면 변수를 생성하지 않는게 좋을 수도 있습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
요즘 습관적으로 변수 선언해서 값을 받은 다음 리턴하는 구조로 코드를 작성하고 있는데, 말씀해주신 대로 변수를 선언할 경우 다른 사람이 선언한 변수를 이용할 가능성도 있겠네요! 감사합니다
problem-1/SymbolTableWithArray.js
Outdated
const curIndex = this.#findIndex(key); | ||
|
||
if (curIndex >= 0) { | ||
this.#items[curIndex].item = item; | ||
|
||
return; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const curIndex = this.#findIndex(key);
if (curIndex >= 0) {
this.#items[curIndex].item = item;
return;
}
개인적인 의견이지만, 이 사이는 붙이는게 좋은 것 같아요. 바로 위 코드랑 연관이 높고, 나온 값에 대해서 처리를 하는거라서 붙이는게 좋은 것 같아요. 아마 제가 Golang을 사용해서 영향을 받은 것도 있는 것 같기도 하고요. Golang에서는 이런 문법은 많이 쓰거든요.
data, err := getSomething
if err == nil {
return
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이것도 제 습관이네요 ㅠ
변수 선언하고 항상 한 줄 씩 띄우고 있었는데, 코드가 연관될 경우 라인을 붙이는 것도 좋은 것 같습니다! 감사합니다
problem-2/SymbolTable.js
Outdated
keysRange(start, end) { | ||
const i = this.rank(this.ceiling(start)); | ||
const j = this.rank(this.floor(end)); | ||
|
||
if (i > j || i < 0 || j >= this.#n) { | ||
return []; | ||
} | ||
|
||
const keys = []; | ||
|
||
for (let k = i; k <= j; k++) { | ||
keys.push(this.#keys[k]); | ||
} | ||
|
||
return keys; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
주어진 시작 키보다 큰 수 중에 가장 작은 수의 위치, 주어진 끝 키보다 작은 수 중에 가장 큰 키의 위치를 구해서, 해당 구간의 모든 키 목록을 반환하는거군요 ㅎㅎ 기존 메서드를 활용해서 구현해 주셨네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
네 ㅎㅎ ceiling
이랑 floor
메서드를 이용하면 되겠네! 라는 생각이 순간적으로 들어서 구현했는데, 잘 되더라구요!
변수명이 i, j로 작성되어 있어서 가독성이 떨어지네요 ..!
일주일이나 늦었지만 PR 올립니다!
problem-3 이진 탐색 트리 그림
problem-5 개별 체이닝 해시 테이블 그림