-
Notifications
You must be signed in to change notification settings - Fork 2
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
58-tgyuuAn #204
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.
n_queen만 해도 시간초과로 머리가 아파서 잠시 미뤄뒀는데
|
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.
저도 N-queen이 같은 행/열에 안 놓는거고 이건 대각선으로 바뀐 것 밖에 없으니까
조금만 수정하면 되겠는데? 해서 시작했다가 ... gg 치고 pr 보러 왔습니다 ....
근데 흑백 줄을 나눠서 접근하는 거였다니 어차피 풀어도 시간 초과 했을 ... 미래였네요
다른 풀이도 참고하려고 찾아보니까
흑백을 나누지 않고 단순히 백트래킹많으로 통과한 코드가 있긴하네요
Python3는 아니고 Pypy에요!
참고 브로그
문제 풀이가 기억이 안날 때 쯤 다시 .. 문제 풀러 오겠슴다
항상 틀의 깨는 문제 선정 굿입니다 👍
ans = 0 | ||
dfs(0, 0) # 0부터 2씩 증가 | ||
t = ans | ||
ans = 0 | ||
dfs(1, 0) # 1부터 2씩 증가 | ||
print(ans+t) |
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.
@H0ngJu 저도 보면서 친 거라서.............................. 전혀전혀...
@alstjr7437 @alstjr7437 @H0ngJu 우리 모두 나중에 이 문제 다시 리트라이 해보아요 ...................... |
🔗 문제 링크
비숍
✔️ 소요된 시간
3h
풀다가 화가 너무 많이 나서 유튜브 보고 따라 침요...................
✨ 수도 코드
#192 에서 나왔던 n-Queen의 고난이도 버전!!!!!!!!!
n-queen 에서는 대각선, 상하좌우로 움직일 수 있지만 비숍은 대각선으로만 움직일 수 있다.
그래서 호기롭게 그냥 n-queen에서 로직만 살짝 바꿔서 슛해보았다.
그 결과는 짜잔!
하 지금 이 문제 때문에 너무 많은 시간을 날려서 제정신이 아니다.
일단,,, 문제 풀이는 아래와 같다.
핵심은 우상향으로 선을 그었을 때,
비숍이 들어갈 수 있는 자리는 각 빨간 대각선 별로 하나 씩 넣을 수 있다. (물론 못 넣을 수도 있음.)
왜냐구요?
일단 해당 빨간색 라인에는 하나 씩 밖에 못넣는 것이 자명하기 때문!
그리고 저기 빨간색 칸에 아무대나 집어 넣는 것이 아니라,
아래와 같은 우하향 파란색 대각선을 체크해줘야 하는데,
백트래킹을 진행할 때 해당 칸으로부터 대각선을 슥슥 체크해준다.
여기 까지만 하면 답은 나올 것이다.
이제 시간 초과를 동반한.
여기 까지 풀면 이제 n-queen이랑 비슷하거나 그보다 조금 더 위의 난이도인데,
이 시간 초과를 해결하기 위한 잡기술이 추가적으로 들어간다.
아래 그림을 보라!!!!!!!!!!!!
흰색 칸에 있는 비숍은 검은색 칸에 있는 비숍을 절대 만날 수 없다!
그렇다!
1010의 문제에서 (55) *2 의 문제로 순식간에 바뀐 것!
시간 복잡도 도 확줄었다!
근데 이제 머리로는 이해는 했는데 코드 손보기가 너무너무 귀찮고 짜증이나서 따라쳤다.
시간이 많이 딜레이되기도 했고...
ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
나중에 시간나면 저장해놨다가 다시 풀어봐야지. 맨정신일때..
📚 새롭게 알게된 내용