inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-J

3-J 질문

216

firdoo

작성한 질문수 9

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 듣고 아래 코드처럼 다시 한번 풀어봤습니다.main함수 안에서 풀었을 때는 통과가 되었는데 bfs를 밖으로 빼서 풀었더니 틀리게 되었습니다.틀린 원인이 bfs를 밖으로 빼서 그런건지 아니면 제가 확인하지 못한 로직이 문제가 있는지 모르겠습니다. #include <bits/stdc++.h> using namespace std; #define y1 aaaa int n, m, x1, y1, x2, y2, visited[304][304], cnt; char a[304][304]; string s; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; void bfs(int sy, int sx, int ey, int ex){ visited[sy][sx] = 1; queue<int> q; q.push(1000*sy + sx); while(a[ey][ex] != '0'){ cnt++; queue<int> temp; while(q.size()){ int y = q.front()/1000; int x = q.front()%1000; q.pop(); for(int i=0; i<4; i++){ int ny = y+dy[i]; int nx = x+dx[i]; if(ny<0 || ny>=n || nx<0 || nx>=m || visited[ny][nx]) continue; visited[ny][nx] = cnt; if(a[ny][nx] == '0'){ //0을 만나면 q에 0이 없을때까지 계속 돈다. q.push(1000*ny + nx); } else{ //1이나 목적지#을 만나면 0으로 바꾸고 그 위치를 temp에 기억해둔다. a[ny][nx] = '0'; temp.push(1000*ny + nx); } } } //q에 0이 없어지면 temp에 저장해두었던 1의 위치들을 q에 다시 넣어서 //0에서 했던 과정들을 다시 반복해준다. q = temp; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; cin >> x1 >> y1 >> x2 >> y2; x1--, y1--, x2--, y2--; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ cin >> a[i][j]; } } bfs(y1, x1, y2, x2); cout << visited[y2][x2] << '\n'; return 0; }

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 firdoo님 ㅎㅎ

제가 수강생님 코드를 보고 싶어도.

코드 보기가 너무 힘듭니다.. ㅠ

0주차 - 질문하는 방법 참고하셔서 다시 질문 부탁드립니다.

 

감사합니다.

코딩살구클럽 가입부탁드립니다

0

16

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

21

2

5-S 테스트 케이스 질문

0

30

2

코살 문제풀이 환경

0

45

2

2 - T 오큰수 문제가 있는 것 같습니다.

0

41

1

추천 추가문제들

0

41

2

프로그래머스 코테 환경 관련해서 질문드립니다.

0

42

2

해당 문제에 대한 채점이 코딩살구클럽에서 올바르게 처리되지 않습니다.

0

39

2

균형 이진 트리 설명 시 높이 숫자

0

30

2

4-H 질문드립니다.

0

35

2

1-K 질문드립니다.

0

41

2

대기업 인적성 시험 질문

0

41

2

4-C 질문드립니다

0

41

2

[수학숙제 / BOJ 2870] 채점 서버 오작동

0

37

1

코테 준비 질문

0

50

1

살구클럽가입 요청드려요

0

38

2

1-I 문제 질문

0

39

2

코딩살구클럽 가입

0

57

2

AI 코딩 도구 사용 시 학습 방법 조언

0

51

2

코딩살구클럽 오류

0

61

2

코살클 [3-F 괄호 추가하기] 프라이빗 9번 제보

0

46

1

코딩살구클럽 테스트 케이스 오류 제보

0

52

2

삼성 코딩테스트

0

61

2

틀린 이유를 못찾겠습니다

0

47

2