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

58-tgyuuAn #204

Merged
merged 2 commits into from
Jun 3, 2024
Merged

58-tgyuuAn #204

merged 2 commits into from
Jun 3, 2024

Conversation

tgyuuAn
Copy link
Member

@tgyuuAn tgyuuAn commented May 31, 2024

🔗 문제 링크

비숍

✔️ 소요된 시간

3h

풀다가 화가 너무 많이 나서 유튜브 보고 따라 침요...................

✨ 수도 코드

image

#192 에서 나왔던 n-Queen의 고난이도 버전!!!!!!!!!







n-queen 에서는 대각선, 상하좌우로 움직일 수 있지만 비숍은 대각선으로만 움직일 수 있다.

그래서 호기롭게 그냥 n-queen에서 로직만 살짝 바꿔서 슛해보았다.







그 결과는 짜잔!

image







하 지금 이 문제 때문에 너무 많은 시간을 날려서 제정신이 아니다.

일단,,, 문제 풀이는 아래와 같다.

핵심은 우상향으로 선을 그었을 때,

image

비숍이 들어갈 수 있는 자리는 각 빨간 대각선 별로 하나 씩 넣을 수 있다. (물론 못 넣을 수도 있음.)

왜냐구요?

일단 해당 빨간색 라인에는 하나 씩 밖에 못넣는 것이 자명하기 때문!

image







그리고 저기 빨간색 칸에 아무대나 집어 넣는 것이 아니라,

아래와 같은 우하향 파란색 대각선을 체크해줘야 하는데,

백트래킹을 진행할 때 해당 칸으로부터 대각선을 슥슥 체크해준다.

image







여기 까지만 하면 답은 나올 것이다.

이제 시간 초과를 동반한.

여기 까지 풀면 이제 n-queen이랑 비슷하거나 그보다 조금 더 위의 난이도인데,

시간 초과를 해결하기 위한 잡기술이 추가적으로 들어간다.







아래 그림을 보라!!!!!!!!!!!!

흰색 칸에 있는 비숍검은색 칸에 있는 비숍을 절대 만날 수 없다!

image

그렇다!

1010의 문제에서 (55) *2 의 문제로 순식간에 바뀐 것!

시간 복잡도 도 확줄었다!

근데 이제 머리로는 이해는 했는데 코드 손보기가 너무너무 귀찮고 짜증이나서 따라쳤다.

시간이 많이 딜레이되기도 했고...

ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ

나중에 시간나면 저장해놨다가 다시 풀어봐야지. 맨정신일때..

image

📚 새롭게 알게된 내용

@tgyuuAn tgyuuAn added tgyuuAn 한 줄로는 소개할 수 없는 남자. 작성 중 ⏱️ labels May 31, 2024
@tgyuuAn tgyuuAn self-assigned this May 31, 2024
@tgyuuAn tgyuuAn changed the title 2024-05-30 58-tgyuuAn May 31, 2024
@tgyuuAn tgyuuAn marked this pull request as ready for review May 31, 2024 17:07
Copy link
Collaborator

@SeongHoonC SeongHoonC left a comment

Choose a reason for hiding this comment

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

image

좌표를 이렇게 바꾸면 같은 행, 같은 열에 겹치지 않게 놓는 것 중 최대 개수로 변하지 않을까? 라는 생각까지 했는데 이후에 코드가...안써지네요 흠..태규상 풀이는 봤지만 이렇게 풀어보고 싶은데 시간이 많이 걸려서 패쓰 하겠습니다 흑흑

@alstjr7437
Copy link
Member

alstjr7437 commented Jun 2, 2024

n_queen만 해도 시간초과로 머리가 아파서 잠시 미뤄뒀는데
n_queen의 업그레이드 버전.,,, 나중에 시간이 많을때 한번 풀어보도록 하겠습니다...
그래도 PR 읽으면서 어떻게 풀지 감은 잡혀서 구현만 잘 하면 될 것 같아요!!

  • 참고 블로그 따로 다른 분들은 어떻게 푼지 궁금해서 찾아보니 이 블로그도 도움이 많이 됐습니다!

Copy link
Collaborator

@H0ngJu H0ngJu left a comment

Choose a reason for hiding this comment

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

저도 N-queen이 같은 행/열에 안 놓는거고 이건 대각선으로 바뀐 것 밖에 없으니까
조금만 수정하면 되겠는데? 해서 시작했다가 ... gg 치고 pr 보러 왔습니다 ....

근데 흑백 줄을 나눠서 접근하는 거였다니 어차피 풀어도 시간 초과 했을 ... 미래였네요

다른 풀이도 참고하려고 찾아보니까
흑백을 나누지 않고 단순히 백트래킹많으로 통과한 코드가 있긴하네요
Python3는 아니고 Pypy에요!
참고 브로그

문제 풀이가 기억이 안날 때 쯤 다시 .. 문제 풀러 오겠슴다

항상 틀의 깨는 문제 선정 굿입니다 👍

Comment on lines +32 to +37
ans = 0
dfs(0, 0) # 0부터 2씩 증가
t = ans
ans = 0
dfs(1, 0) # 1부터 2씩 증가
print(ans+t)
Copy link
Collaborator

Choose a reason for hiding this comment

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

아 이렇게 흑백 나누는건 아예 생각 조차 하지 못했는데 ..ㄷㄷ

Copy link
Member Author

Choose a reason for hiding this comment

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

@H0ngJu 저도 보면서 친 거라서.............................. 전혀전혀...

@tgyuuAn
Copy link
Member Author

tgyuuAn commented Jun 3, 2024

@alstjr7437 @alstjr7437 @H0ngJu 우리 모두 나중에 이 문제 다시 리트라이 해보아요 ......................

@tgyuuAn tgyuuAn merged commit 5aee288 into main Jun 3, 2024
5 checks passed
@tgyuuAn tgyuuAn deleted the 58-tgyuuAn branch June 3, 2024 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tgyuuAn 한 줄로는 소개할 수 없는 남자. 리뷰 완료 ✔️
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants