1525번 - 퍼즐
메모리 초과나는 이유 좀 알려주세요!!
게임판의 각 위치를
1 2 3
4 5 6
7 8 9
이라고 생각했을 때
열(col) 별로
1 2 0 이므로
왼쪽으로 갈 수 있는 경우는
0의 위치 % 3 가 짝수일 때이고 현재 0의 위치과 0의 위치-1 한 값을 바꿔준다.
오른쪽으로 갈 수 있는 경우는
0의 위치 % 3 이 0이 아닐 때 현재 0의 위치과 0의 위치+1 한 값을 바꿔준다.
위로 갈 수 있는 경우는
0의 위치 > 3일 때 현재 0의 위치과 0의 위치-3 한 값을 바꿔준다.
아래로 갈 수 있는 경우는
0의 위치 < 7 일 때 현재 0의 위치과 0의 위치+3 한 값을 바꿔준다.
이런식으로 풀었습니다.
예제에서는 결과가 잘 나오고 다른 케이스도 잘 나오는 것 같은데 제출하게되면 메모리 초과가 납니다.
제가 stirng을 잘 써보지 않아서 메모리 관리를 어떻게 해야할지도 모르겠고 혹시 제가 생각한 방법이 중복된 값을 큐에 넣는건 아닌지 생각해봤는데 잘 모르겠습니다.
도와주세요~!!
이 문제의 메모리 제한을 보세요. 메모리를 아껴 써야 하는 문제입니다.
string으로 저장할 필요가 없습니다.
댓글을 작성하려면 로그인해야 합니다.
wie_eiw 6년 전
메모리 초과나는 이유 좀 알려주세요!!
게임판의 각 위치를
1 2 3
4 5 6
7 8 9
이라고 생각했을 때
열(col) 별로
1 2 0 이므로
왼쪽으로 갈 수 있는 경우는
0의 위치 % 3 가 짝수일 때이고 현재 0의 위치과 0의 위치-1 한 값을 바꿔준다.
오른쪽으로 갈 수 있는 경우는
0의 위치 % 3 이 0이 아닐 때 현재 0의 위치과 0의 위치+1 한 값을 바꿔준다.
위로 갈 수 있는 경우는
0의 위치 > 3일 때 현재 0의 위치과 0의 위치-3 한 값을 바꿔준다.
아래로 갈 수 있는 경우는
0의 위치 < 7 일 때 현재 0의 위치과 0의 위치+3 한 값을 바꿔준다.
이런식으로 풀었습니다.
예제에서는 결과가 잘 나오고 다른 케이스도 잘 나오는 것 같은데 제출하게되면 메모리 초과가 납니다.
제가 stirng을 잘 써보지 않아서 메모리 관리를 어떻게 해야할지도 모르겠고 혹시 제가 생각한 방법이 중복된 값을 큐에 넣는건 아닌지 생각해봤는데 잘 모르겠습니다.
도와주세요~!!