백준-1987-알파벳(파이썬)

중간고사 때문에 약 3주간 코딩문제를 한 문제도 풀지 않았다.
오늘부터 적어도 1일 한문제 정도는 풀려고한다,

문제이해

  • 그냥 DFS/BFS 문제인것 같다.
  • 상하좌우로 방문을 하면서 조건을 검사한다.
  • 여기서 조건은 이미 지나온 알파벳은 지나가지 못한다는 것이다.

문제 풀이

  • DFS 코드로 문제를 해결하려한다.
  • 여기서 x, y index가 범위를 벗어나는지, 그 위치의 알파벳이 지나왔던 알파벳인지 검사한다.
  • 매 재귀마다 count를 1씩 증가시켜 최대값을 찾는다.

문제풀 때

  • 음... 일단 아래의 코드로 제출을 했는데 시간초과가 일어났다...
  • pypy3로도 시간초과가 난다.
  • 위의 코드에서 재귀가 끝나고 pop()을 하는 것은 다른 경로로도 가기 위함이다.
  • 알파벳을 리스트에 넣는 대신에 0에서 26까지의 배열형태로 0, 1 참조로 바꿔주었다.
    --> 통과!!!!

0개의 댓글