3 - J 풀이방법
327
작성한 질문수 2
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요.
3 - J 주난의 난 문제를 다음과 같은 방법으로 풀었습니다
2차원 arr 에 입력을 저장하고 상하좌우 bfs 로 탐색을 진행하면서
만약 '1' 이 나올 경우 이를 q2에 저장
만약 '0' 이 나올 경우 계속 bfs 탐색을 진행하고
목표에 도달하지 못하고 탐색을 다 마친경우
q2 에 저장된 '1' 을 전부 '0' 으로 바꿔주고
BFS 탐색을 다시 처음부터 진행
위의 같은 방법으로 진행하였는데 큰돌의 해설을 보니
'0' 이 아닌 경우 '0' 으로 바로 바꾸고 탐색을 마친 후
temp 큐에 있던 좌표를 기반으로 다시 탐색을 진행하게 되는데
저는 '1' 을 마주친 경우 바로 바꾸지 않고 나중에 바꾸고탐색을 처음부터 다시 진행
큰돌님의 코드는 '1' 을 마주친 경우 바로 바꾸고 탐색을 이어서 진행
으로 해석할 수 있는 걸까요??
코드의 로직은 동일하나 변경 시점과 탐색 시점이 다른 거다 라고 보면 될까요??
큐를 2개 써야된다는 큰돌님의 조언만 듣고 바로 문제를
풀어서 정답을 맞았지만 정확히 이해가 됐는지 확인하고자 질문드립니다!!
제 전체 코드는
https://www.acmicpc.net/source/66428450
입니다!
그리고 저는 BFS 를 처음부터 탐색하여 visited 를 계속 초기화 해주었는데
fill(&visited[0][0], &visited[0][0] + N * M, 0);
으로 문제에서 주어지는 N 과 M 크기 만큼만 초기화 하려고 하니 무한루프를 벗어나지 못하는 일이 생겨
fill(&visited[0][0], &visited[0][0] + 301 * 301, 0);
결국 visited 배열의 크기 만큼 초기화를 하는 것으로 바꾸니 정상 동작하였습니다!
저는 처음 코드가 사용한 만큼의 영역에 대해서만 초기화 한다고 생각했지만 그렇지 않은 걸까요??
답변 1
0
안녕하세요 선우님 ㅎㅎ
잘 짜셨네요 ㅎㅎ
저는 '1' 을 마주친 경우 바로 바꾸지 않고 나중에 바꾸고탐색을 처음부터 다시 진행
큰돌님의 코드는 '1' 을 마주친 경우 바로 바꾸고 탐색을 이어서 진행
으로 해석할 수 있는 걸까요??
>> 아니요 저도 선우님과 동일합니다.
if(a[ny][nx] != '0'){
a[ny][nx] = '0';
temp.push(1000 * ny + nx);지금 보시는 것처럼 바꾸기는 하지만. q가 아닌 temp라는 queue에 넣고 나중에 탐색을 이어 갑니다.
결국 visited 배열의 크기 만큼 초기화를 하는 것으로 바꾸니 정상 동작하였습니다!
저는 처음 코드가 사용한 만큼의 영역에 대해서만 초기화 한다고 생각했지만 그렇지 않은 걸까요??
>> 해당 부분은 교안내의 다음 부분 참고부탁드립니다.
왜 fill()로 전체초기화를 해야할까?
감사합니다.
4 - A
0
21
2
코딩살구클럽 입장이 안됩니다
0
55
2
4-F 경우의 수 질문입니다.
0
32
2
코딩살구클럽 가입이 안됩니다.
0
66
2
살구 클럽에 대한 질문있습ㄴ디ㅏ
0
54
1
교안 158페이지 문의드립니다
0
44
2
코딩살구클럽 관련 건의사항
0
110
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
44
1
진행 방법 질문드립니다!
0
79
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
63
2
2주차 개념#12 트리 순회
0
32
2
백준사이트가 종료된다고 합니다.
0
313
2
백준 서비스 종료
9
945
1
sk 하이닉스 코테 대비
0
384
2
3-G 최댓값 질문
0
54
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
84
2
3-I 코드 질문드립니다.
0
63
2
3-N 질문 있습니다.
0
68
2
학습방법
0
105
2
4-H 질문 있습니다 (코드 리뷰)
0
69
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
182
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
71
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
65
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
53
2





