회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
추가된 문제
문제 순위
문제
푼 사람이 한 명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
채점 현황
랭킹
게시판
그룹
더 보기
재채점 기록
블로그
강의
실험실
도움말
BOJ Stack
BOJ Book
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
solved.ac
글쓰기
질문 도움말
자주묻는 질문
python으로 구현
1987번 - 알파벳
kanght1219
3년 전
0
반례를 찾아 주실 수 있을까요
from collections import deque n, m = map(int,input().split()) mpg = [list(input()) for i in range(n)]#입력 받음 def bfs(): queue = deque() mx = 0 dx = [-1,1,0,0] dy = [0,0,-1,1] alphabet = []#알파벳 중복 확인 visit = [[0]*m for i in range(n)]#방문 확인(알파벳 방문 때문에 있을 필요는 딱히 없는 듯) queue.append([0,0,1,alphabet,visit])#위치 좌표, 간 거리, 방문한 알파벳, 방문 장소 입력 while queue: x, y, d, alp, visit = queue.popleft() print(x,y,d)#그냥 확인용으로 둔 것(위치 좌표 x, y, 거리), 제출할 땐 뺐음 if x < 0 or y < 0 or x >= n or y >= m:#맵 이탈시 종료 continue elif mpg[x][y] in alp:#방문한 알파벳이면 종료 continue elif visit[x][y] == 1:#방문한 장소면 종료 continue else: if mx < d:#최댓값이면 (최댓값 = 지금 거리) mx = d visit[x][y] = 1#방문 표시 alp.append(mpg[x][y])#알파벳 추가 d += 1 for i in range(4): queue.append([x+dx[i],y+dy[i],d,alp,visit]) return mx#최댓값 리턴 print(bfs())#결과물 출력
댓글을 작성하려면
로그인
해야 합니다.
kanght1219 3년 전
반례를 찾아 주실 수 있을까요