해결된 질문
작성
·
35
답변 1
1
안녕하세요 eovnfjfpa4963님!
말씀하신 대로 N 이 큰 경우 ArrayList를 사용하는 것이 기본적인 원칙인데, 해당 유형에서는 그 정도로 큰 N이 주어지는 경우가 드물다고 보셔도 될 것 같습니다! 이전 유형처럼 연결된 정보를 map으로 저장하는 경우, '누가 누구와 저장되었는가'를 저장하기 위한 논리적 지도를 의미하지만, 해당 문제 유형의 map은 실제로 이동이 가능한 물리적 지도를 뜻하기 때문에, '어떤 위치에 0/1이 저장되어 있는가'의 정보를 담고 있어서, 기존 방식처럼 어레이 리스트로 압축하기가 까다롭습니다. 그래서 해당 유형에 대해서는 어레이 리스트 활용을 고민하지 않으셔도 될 것 같습니다!
만약 하셔야 한다면 말씀하신대로 2차원 어레이 리스트를 만들어서 x, y 좌표에 맞게 arrayList를 접근해야 하고, 해당 arrayList는 int 하나가 아닌 다음 방문 가능한 (x,y) 좌표 정보를 묶어서 저장해야될 것 같습니다! (아니면 x * N + y 이런 식으로 한 값을 저장하여 값을 읽을 때 매번 z / N => x, z % N => y 이런식으로 나눠쓰는 방법도 가능하고요)