인프런 커뮤니티 질문&답변

조현성님의 프로필 이미지
조현성

작성한 질문수

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

3-B

3-B똑같이 친거같은데 결과가 다르네요

해결된 질문

작성

·

311

0

using namespace 아래로 답지꺼 복붙 하니까 제대로 되는데 제가 답지 따라서 타이핑 친 건 이건데 안 나오네요 아무리 봐도 어디가 잘못된 줄 모르겠어요

#include<iostream>
#include<cstring>
#include<queue>
#include<tuple>
using namespace std;
int n, m, mx, visited[54][54];
const int dy[]={-1,0,1,0};
const int dx[]={0,1,0,-1};
char a[54][54];
void bfs(int y, int x){
    memset(visited,0,sizeof(visited));
    visited[y][x]=1;
    queue<pair<int,int>>q;
    q.push({y,x});
    while(q.size()){
        tie(y,x)=q.front();q.pop();
        for(int i=0;i<4;i++){
            int ny=y+dy[i];
            int nx=x+dy[i];
            if(ny<0||ny>=n||nx<0||nx>=m)continue;
            if(visited[ny][nx])continue;
            if(a[ny][nx]=='W')continue;
            visited[ny][nx]=visited[y][x]+1;
            q.push({ny,nx});
            mx=max(mx, visited[ny][nx]);
        }
    }
    return;
}

int main(){
    cin >> n >> m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(a[i][j]=='L')bfs(i,j);
        }
    }
    cout << mx-1 << "\n";
}

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 현성님 ㅎㅎ

            int ny=y+dy[i];
            int nx=x+dy[i];

이부분이요. nx부분 다시한번 보시겠어요? ㅎㅎ

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

조현성님의 프로필 이미지
조현성

작성한 질문수

질문하기