1987-python & swift

2023. 4. 24. 00:31·알고리즘

1. Python 풀이.

이건 BFS라고 생각했다. 왜? 상하좌우로 한칸씩 이동하면서 간 새곳이 이전에 간곳과 동일한지 체크하면 되기 때문이다.

import sys
row , col = map(int, sys.stdin.readline().split())
arr = []
arr = [list(map(str, sys.stdin.readline().strip())) for _ in range(row)]
dx = [-1,1,0,0] #왼오
dy = [0,0,-1,1] #아래 위
cnt = 1
def BFS(): # 한칸씩 최대 몇칸을 가는지를 구해야하기에
    global cnt
    queue = set([(0,0,arr[0][0])])
    while queue:
        a,b,c = queue.pop()
        cnt = max(cnt, len(c))
        for i in range(4):
            nx = a + dx[i]
            ny = b + dy[i]
            if 0<=nx < row and 0<=ny< col and arr[nx][ny] not in c:
                queue.add((nx,ny,arr[nx][ny] + c))
                
BFS()
print(cnt)

진짜 오랜만에(6개월만) 파이썬을 해서 하나도 모르겠다.. 인풋받는것부터..

처음에 cnt=1로 잡아두고  set으로 중복되는곳은 제거하였다. 

큐에서 하나씩 빼주면서 그 왼오위아래를 투어하면서 만약 그 알파벳이 없으면 큐에 넣어주고

큐가 다빠질때까지 반복하면서 c는 그동안의 지난칸들의 알파벳을 저장하므로 둘중 더큰것을 비교를 통해 전역변수 cnt를 이용하여 구해줄수 있다!!

2. swift로 해볼까?

 

'알고리즘' 카테고리의 다른 글

1043-python  (1) 2023.05.11
[프로그래머스]-이모티콘할인행사(swift)  (1) 2023.05.04
알고리즘 2023kakaoblind-개인정보 수집 유효기간(python)  (0) 2023.04.30
프로그래머스-귤고르기(Python)  (0) 2023.04.29
1647 - swift  (1) 2023.04.24
'알고리즘' 카테고리의 다른 글
  • [프로그래머스]-이모티콘할인행사(swift)
  • 알고리즘 2023kakaoblind-개인정보 수집 유효기간(python)
  • 프로그래머스-귤고르기(Python)
  • 1647 - swift
2료일
2료일
좌충우돌 모든것을 다 정리하려고 노력하는 J가 되려고 하는 세미개발자의 블로그입니다. 편하게 보고 가세요
  • 2료일
    GPT에게서 살아남기
    2료일
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • SWIFT개발 (29)
      • 알고리즘 (25)
      • Design (6)
      • ARkit (1)
      • 면접준비 (30)
      • UIkit (2)
      • Vapor-Server with swift (3)
      • 디자인패턴 (5)
      • 반응형프로그래밍 (12)
      • CS (3)
      • 도서관 (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
2료일
1987-python & swift
상단으로

티스토리툴바