imjkang7   1년 전

while 문을 잘 모르는 것도 있는데... 솔직히 원래 같으면 적는 방법이 인터넷에 있어서 그대로 적고 하는거 보다 좀더 짧게 짜고 싶어서 이렇게 했는데 어디서 틀린건지 잘 모르겠습니다. 에러 종류도 시간 초과로 나와 있어서 아마 공지사항에 있는 DFS 파트에서 무한루프에 빠져서 오류난거 같은데 잘은 몰라서 질문합니다. 문제는 어렵지 않은거를 저도 알지만 정확하게 하고 넘어가고 싶어서요.

9797565   1년 전

연산자 우선순위에 대해 공부해보세요.

a and b != 0은

a and (b != 0)으로 계산됩니다.

blk0517   1년 전

덧붙여서, 추가적으로 현재 코드에서는 입력을 while 문 밖에서 한 번만 받고 있습니다. 그러하여 while 문이 무한 반복되어 시간 초과가 발생하는 것입니다.

입력을 계속 받으려면 while 문 안에서 받아야겠죠.

imjkang7   1년 전

아 그러면 만약에 바꾼다면 이렇게 하면 될까요? 안될꺼 같긴하지만 처음이 어디서 틀린건지는 알수 있었네요.

blk0517   1년 전

댓글 수정하느라 다시 올립니다.

해당 코드도 오류가 발생합니다.

1. a와 b가 정의되지 않은 상태이므로 while 문이 처음 돌아갈 때 (a and b)의 결과 판단이 불가능해 오류가 발생합니다.

2. 파이썬에서는 0을 제외한 모든 수가 true이므로 a와 b의 값이 true가 될 수도, false가 될 수도 있습니다. 'true != 0' 또는 'fakse != 0' 이렇게 비교하게 되는 꼴이라 문제 의도와 맞지 않습니다.

문제를 푸시기보다 먼저 개념적인 부분을 보고 오시는 걸 추천드립니다.

blk0517   1년 전

추가적으로 (a and b) != 0 이 아닙니다.

프로그래밍에서 a도 0이 아니고 b도 0이 아니다 라는 표현은

(a는 0이 아니다) 그리고 (b는 0이 아니다) 이러한 방식으로 작성해야 하므로

즉, (a != 0) and (b != 0) 이러한 방식으로 작성해야 합니다.

imjkang7   1년 전

좋은 댓글 감사합니다. 일단 저도 저 코드 바꾼거 올리고 a,b 정의가 안되는데 코드가 자체가 성립이 안된다는거를 알았지만... 댓글 지우는거보다는 실수를 알고 고치는게 맞는거 같았고 그리고 파이썬에 0을 제외한 모든 수가 true 인지 오늘 처음알았네요. 일단 개념 더 익히고 질문할께요. 감사합니다.

imjkang7   1년 전

덕분에 while 코드문을 어떻게 짜야될지 알게되었습니다. 좋은 조언 감사합니다. 확실히 while 이 반복 구문인거만 알았지 while True구문을 어떻게 쓰고 왜 쓰는지에 대해서 필요성을 몰랐는데 그래도 덕분에 문제도 풀고 잘 알고 갑니다. 감사합니다.

댓글을 작성하려면 로그인해야 합니다.