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

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

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

2-b질문입니다.

작성

·

254

0

2-b질문입니다.

1.2분 29초에 y가 가로이고 x가 세로라고 하셨는데 그걸 어떻게 알아요?

2.사진에서 n이 10이고 m이 8로 받아져있는데요. 왜 y가 10까지 돌아야 하는데 왜 8에서 멈추나요?

에러나는 이유를 모르겠어요.png

import sys
sys.stdin = open('input.txt', 'r')
from collections import deque
testcase=int(input())
n,m,k=map(int,input().split())
# print(n,m,k)
# grid=[list(map(int,input().split())) for _ in range(m)]
grid2=[[0]*n for _ in range(m)]
visited=[[0]*n for _ in range(m)]
for _ in range(k):
    x,y=map(int,input().split())
    grid2[y][x]=1

# for i in range(m):
#     print(grid2[i])

dxs=[-1,0,1,0]
dys=[0,-1,0,1]
Q=deque()
def in_range(x,y):
    return 0<=x and 0<=y and x<n and y<n


for y in range(n):#가로
    for x in range(m):#세로
        if grid2[y][x]==1:
            if visited[y][x]==0:
                Q.append((y,x))
                visited[y][x] = 1


while Q:
    y,x=Q.popleft()

    for dx,dy in zip(dxs,dys):
        nx=dx+y
        ny=dy+x
        if not in_range(ny,nx):
            continue
        if visited[ny][nx]==1:
            continue
        if visited[ny][nx]==0 and grid2[ny][nx]==1:
           visited[ny][nx] =1

for i in range(m):
    print(visited[i])

답변 1

0

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

안녕하세요 ek님 ㅎㅎ

죄송하지만 C++이외의 언어로는 답변 드리지 않고 있습니다.

 

감사합니다.

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

질문하기