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

40-tgyuuAn #142

Merged
merged 2 commits into from
Mar 4, 2024
Merged

40-tgyuuAn #142

merged 2 commits into from
Mar 4, 2024

Conversation

tgyuuAn
Copy link
Member

@tgyuuAn tgyuuAn commented Feb 20, 2024

🔗 문제 링크

입대

✔️ 소요된 시간

5시간...?

댕 어렵다... 🐶

✨ 수도 코드

아놔 이거 레퍼런스도 없고 생긴 지 얼마 안된 문제라 구글에 쳐봐도 정보가 없다..

숨이 턱 막히고 울화통이 터질 뻔 했다랄까...?




결론부터 말하자면 오픈 채팅방에 여쩌봤떠니 루비 형님 2분께서 10분만에 풀어주셨다.




thanks to..

심지어 저거 풀어주신 tony 님 (민상님)은 소마 11기셨다.

소마에 있는 사람들은 대단한 것 같다고 느껴졌다...







저거 날짜, 헌혈한 횟수를 기준으로 2차원 테이블을 만들라는 말에서 바로 번뜩 떠올랐다.

정말... 내가 4시간 삽질해도 못푸는 문제루비 형아들은 단 몇 초만에 떠올리고 10분 만에 코드를 제출해서 성공하셨다.

벽 많이 느껴진다....







일단 다시 문제로 돌아와서,

전체적인 로직은 다음과 같다.

아래 예시를 기준으로,

image







먼저 남은 날짜와 헌혈을 하는 횟수를 기준을 축으로 DP 테이블을 만든다.

(이거까지 떠올리는 게 이 문제의 핵심이다. 근데 난 그걸 못했고.)

image







그리고 가장 첫 날 부터 마지막날 까지 순회를 시작한다.

이 때, 헌혈을 할 수 있는 횟수도 순회를 하는데,

(즉 날짜를 옮기면서 표의 세로축도 훑어본다.)







아래와 같은 그림에서,


image

첫 번째날 헌혈을 한 번 해서 얻을 수 있는 최대 점수는 0점이다.

왜냐하면 첫 번째 날부터 헌혈 하는데, 쉬어야 하는 날 2일 전에는 없으므로.

(나는 헌혈이 끝나는 날 점수를 얻는 방식으로 구현했다. 헌혈이 시작하는 날 점수를 얻게 구현할 수도 있겠지?)




image







그리고 그 날 표의 세로 축을 다 채웠으면 다음 날짜로 넘어간다.

이 때, 헌혈을 0번 할 때의 최대 값

이 전 날의 헌혈 0번 할 때의 최대 값 + 오늘날 봉사할 때의 값이다.

image







그리고 세로 축을 탐색한다.


여기서 보면 2일을 쉬면 10점을 얻을 수 있는데,

표에서는 2일 전 (가로축 2칸 전)표의 밖 영역이다.

그렇기 때문에 잡 기술로 왼쪽에 아무 값도 없는 패딩 영역을 넣어준다.

그리고 2일 전을 탐색해준다.


image




image

이렇게 세로 축을 모두 갱신해준다.







그 다음 날로 또 넘어간다.

또 반복한다.

image







그렇게 마지막 까지 표를 다 채우면,

마지막에는 표의 마지막 세로축만 탐색한다.

image

끝....!

📚 새롭게 알게된 내용

@tgyuuAn tgyuuAn added tgyuuAn 한 줄로는 소개할 수 없는 남자. 작성 중 ⏱️ labels Feb 20, 2024
@tgyuuAn tgyuuAn self-assigned this Feb 20, 2024
@tgyuuAn tgyuuAn marked this pull request as ready for review February 21, 2024 05:55
@tgyuuAn tgyuuAn merged commit df1db55 into main Mar 4, 2024
@tgyuuAn tgyuuAn deleted the 40-tgyuuAn branch March 4, 2024 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
내다 버린 PR 🗑️ tgyuuAn 한 줄로는 소개할 수 없는 남자.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant