-
Notifications
You must be signed in to change notification settings - Fork 126
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
[gomgom22] Week6 #909
[gomgom22] Week6 #909
Conversation
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.
고생하셨습니다~
시간복잡도 수정이 필요한 부분 코멘트 남겼습니다.
valid-parentheses/Yjason-K.ts
Outdated
for (const char of s) { | ||
// 여는 경우, 스택에 추가 | ||
if (openingBrackets.includes(char)) { | ||
bracketStack.push(char); | ||
} else { | ||
// 닫는 괄호 경우, 스택에서 가장 마지막에 추가한 여는 괄호를 꺼냄 | ||
const lastOpeningBracket = bracketStack.pop(); | ||
// bracketSets 과 유효하지 않은 괄호인 경우 | ||
if (bracketSets[lastOpeningBracket!] !== char) { | ||
return false; | ||
} | ||
} | ||
} |
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.
시간복잡도가 O(n)으로 적어주셨는데요. for...of 문 안에 includes() 메소드를 사용하고 있어서O(n^2)이 될 듯합니다.
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.
openingBrackets 경우 사이즈 크기라 O(n)으로 생각해도 되지 않을까요?
openingBrackets.includes(char)는 O(1), bracketStack.push()와 bracketStack.pop()도 배열의 끝에서 작업을 수행하므로 O(1), bracketSets[lastOpeningBracket!] !== char는 상수사이즈의 객체 조회이므로 O(1) 이렇게 생각했어요!
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.
저도 @Yjason-K 님 의견에 공감해요.
includes
메서드 자체는 @taewanseoul 님께서 언급해주신대로, O(k)의 시간복잡도를 필요로 하는 메서드이지만, 순회 대상인 openingBrackets
배열이 입력값인 s
의 길이(n
)에 비례하지 않고, 3이라는 고정값으로 사용되고 있으니 이는 O(1)
으로 보기에 충분할 것 같아요.
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.
@Yjason-K 님, 6주차도 고생하셨습니다!
몇가지 간단한 리뷰를 조금 남겼는데, 크게 문제가 될 부분은 아닌 것 같아서 우선 승인 드리겠습니다!
15주 완주까지 앞으로도 계속 응원하겠습니다~
valid-parentheses/Yjason-K.ts
Outdated
for (const char of s) { | ||
// 여는 경우, 스택에 추가 | ||
if (openingBrackets.includes(char)) { | ||
bracketStack.push(char); | ||
} else { | ||
// 닫는 괄호 경우, 스택에서 가장 마지막에 추가한 여는 괄호를 꺼냄 | ||
const lastOpeningBracket = bracketStack.pop(); | ||
// bracketSets 과 유효하지 않은 괄호인 경우 | ||
if (bracketSets[lastOpeningBracket!] !== char) { | ||
return false; | ||
} | ||
} | ||
} |
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.
저도 @Yjason-K 님 의견에 공감해요.
includes
메서드 자체는 @taewanseoul 님께서 언급해주신대로, O(k)의 시간복잡도를 필요로 하는 메서드이지만, 순회 대상인 openingBrackets
배열이 입력값인 s
의 길이(n
)에 비례하지 않고, 3이라는 고정값으로 사용되고 있으니 이는 O(1)
으로 보기에 충분할 것 같아요.
if (s === '') return true; | ||
|
||
const openingBrackets = ['(', '{', '[']; | ||
const bracketSets: Record<string, string> = { '(': ')', '{': '}', '[': ']' }; |
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.
변수의 이름과 사용에 정리가 필요해 보여요.
bracketSets
라는 Set를 사용할것같은 이름을 가진 변수가 사실 Map(Record)로 사용되고 있고,
openingBrackets
변수는 bracketSets
의 키 조회만으로도 충분히 대체가 가능할 것 같습니다!
*/ | ||
function lengthOfLIS(nums: number[]): number { | ||
// 수열을 저장할 배열 | ||
const sequnces: number[] = []; |
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.
중요하지 않은 사항입니다~
오탈자가 있네요! (sequnces
-> sequences
)
답안 제출 문제
체크 리스트
In Review
로 설정해주세요.