Skip to content
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

[친환경사과] Week 7 #923

Merged
merged 5 commits into from
Jan 25, 2025
Merged

Conversation

EcoFriendlyAppleSu
Copy link
Contributor

@EcoFriendlyAppleSu EcoFriendlyAppleSu commented Jan 19, 2025

답안 제출 문제

체크 리스트

  • 우측 메뉴에서 PR을 Projects에 추가해주세요.
  • Projects의 오른쪽 버튼(▼)을 눌러 확장한 뒤, Week를 현재 주차로 설정해주세요.
  • 바로 앞에 PR을 열어주신 분을 코드 검토자로 지정해주세요.
  • 문제를 모두 푸시면 프로젝트에서 StatusIn Review로 설정해주세요.
  • 코드 검토자 1분 이상으로부터 승인을 받으셨다면 PR을 병합해주세요.

SamTheKorean
SamTheKorean previously approved these changes Jan 19, 2025
Copy link
Contributor

@SamTheKorean SamTheKorean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생많으셨습니다!

@SamTheKorean SamTheKorean dismissed their stale review January 19, 2025 07:22

제가 주차를 착각하고 승인을 급하게 해서 반려합니다.

Comment on lines +4 to +7
* 주어진 문자열에서 반복되는 문자를 포함하지 않은 가장 긴 부분 문자열의 길이를 구하는 문제
* 이중 반복문을 사용해 바깥 반복문에선 시작 문자를 내부 반복문에선 그 다음 문자를 순회하며 중복된 문자가 발견되었을 때, 반복문 탈출하는 방법으로 문제 해결
* 시간 복잡도: O(n^2)
* -> 이중 반복 과정
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O(N^2) -> O(N)으로 최적화해볼 수 있을까요?


/*
* Node를 역순으로 만드는 문제
* 추가 저장 공간을 사용해 노드를 채워 둔 뒤 역행하면서 포인터 값을 변경하는 방법으로 해결
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

추가적인 저장 공간을 사용하지 않고도 문제를 해결해보면 좋을 것 같아요

/*
* board에서 0이 발견 되었을 때, 기준 row, column을 모두 0으로 변경하는 문제
* Set 자료구조를 사용해 중복을 없애고 순회하여 문제 해결
* 시간 복잡도: O(n^2) (정확히는 O(row * col))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

문제에서 주어진 변수가 m, n으로 명시되어 있으니 O(mn)으로 써주시는게 더 좋을 것 같아요

Comment on lines +10 to +11
* 공간 복잡도: O(1)
* -> 중복을 제거한 rowSet, columnSet을 저장하는 공간
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rowSet, columnSet을 사용하고 있으니까 공간 복잡도가 O(1)이 아닐 것 같아요

/*
* 주어진 m,n size board 위에서 좌측 위부터 우측 아래까지 도착하는 Unique path의 개수를 구하는 방법 (m = row size, n = col size)
* 움직일 수 있는 방향이 아래와 오른쪽으로 정해저 있는 상황에서 다음 칸으로 갈 수 있는 방법은 아래와 같음
* board[i][j] = board[i][j-1] + board[i-1][j]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😄👍👍


for (i in 1 until m) {
for (j in 1 until n) {
board[i][j] = board[i][j-1] + board[i-1][j]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

한 번 점화식을 잘 살펴봐주세요
이중 for 문 안에서 해당 연산을 수행할 때, 우린 board의 행 중에서 i, i-1 두 행만 필요하다는 걸 확인할 수 있습니다
관찰한 바를 토대로 공간 복잡도를 O(mn) -> O(m)으로 최적화할 수 있습니다 :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다음 값에 영향을 미치는 요소가 결괏값 기준 왼쪽, 위쪽 값이 영향을 받네요!
놓진 부분 피드백 주셔서 감사합니다.

Copy link
Contributor

@obzva obzva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 친환경사과님 :)
이번 한 주도 정말 수고 많으셨습니다
로직 및 설명이 깔끔해서 리뷰하기 편했습니다
코멘트 남겨놓았으니 병합 전에 꼭 확인 부탁드리고, 최적화 여지가 있는 부분에 대해서도 시간 나실 때 생각해보시면 좋을 것 같아요
감사합니다

@EcoFriendlyAppleSu EcoFriendlyAppleSu merged commit d02ead8 into DaleStudy:main Jan 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

3 participants