kksdmfai123   4년 전


테스트 케이스는 여러번이 아니라 1번만 입력한 후에 (0,0),(7,0)인 경우만 진행하였는데,

위와 같은 코드에서 조건이 성립할 때 큐에 cnt+1을 하는 경우가 아니라 , int cnt = 0이라는 전역변수를 선언한 후에 조건이 맞을때 마다 cnt++; 하는 식으로

문제를 풀면 5가 아닌 60이 넘는 값이 나오는데

같은 코드라 생각되는데 두 코드의 차이는 무엇인가요.....?


seico75   4년 전

질문이 24라인에서 cnt+1 를 넣지 않고 전역변수인 cnt를 cnt++ 하시는 것을 말씀하시는 건가요? (물론 큐의 첫 원소를 다루는 다른 부분도 다 고치고...)

위 코드에서, 

처음 0으로 시작해서 한턴을 돌면 cnt==1 인 영역이 최대 8개가 생기고 다음 턴에서 cnt==2 인 영역은 최대 16개가 생길 것 같습니다.

그런데 만일 말씀하신데로 고친다고 하면 첫턴에서 cnt 가 최대 8까지 증가하고 다음턴에서 최대 16까지 증가하겠네요.  

이게 말이 참 어려운데... 위 코드 기준으로 24라인에서 cnt  를 한번 출력해보시면 이해가 되시지 않을까 합니다.

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