DOTY
11) 프로그래머스 Lv2 - 게임 맵 최단거리 본문
728x90
반응형
코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
BFS로 풀었다.
잔실수가 너무 많았었던 문제
#include<bits/stdc++.h>
using namespace std;
int pos_x[4] = {0, 1, 0, -1};
int pos_y[4] = {1, 0, -1, 0};
int check[101][101] = {0,};
int solution(vector<vector<int> > maps)
{
int n = maps.size();
int m = maps[0].size();
int answer = 0;
int q_x, q_y;
queue<pair<int, int> > q;
q.push(make_pair(0, 0));
check[0][0] = 1;
int q_size = q.size();
answer++;
while(!q.empty()) {
if(q_size <= 0) {
q_size = q.size();
answer++;
}
q_x = q.front().first;
q_y = q.front().second;
if(q_x == n-1 && q_y == m-1) {
break;
}
q.pop();
for(int i = 0; i < 4; i++) {
int dx = q_x+pos_x[i];
int dy = q_y+pos_y[i];
if(dx >= 0 && dx < n && dy >= 0 && dy < m) {
if(check[dx][dy] == 0 && maps[dx][dy] == 1) {
q.push(make_pair(dx, dy));
check[dx][dy] = 1;
}
}
}
q_size--;
}
if(q_x != n-1 || q_y != m-1) {
answer = -1;
}
return answer;
}
잔실수 List
1. 문제를 똑바로 안읽어서 5X5로 문제를 풀었음 : d_x, d_y == 4 일때 break로 해버림
2. check 크기를 5X5로 고정함
3.아래 처럼 작성하고 왜 계속 세그폴트가 생기는지 몰랐음.
dx >= 0 && dy < n && dx >= 0 && dy < m
결론
으이구 인간아ᕙ( ︡’︡益’︠)ง
728x90
반응형
'Algorithm > BFS&DFS' 카테고리의 다른 글
13) 백준 18352 - 특정 거리의 도시 찾기 (0) | 2023.03.09 |
---|---|
12) 백준 2468 - 안전 영역 (0) | 2023.02.26 |
10) 백준 1012 - 유기농 배추 (0) | 2023.01.23 |
9) 프로그래머스 Lv3 - 단어 변환 (0) | 2020.10.15 |
8) 프로그래머스 Lv.3 - 네트워크 (0) | 2020.10.13 |
Comments