본문 바로가기

Algorithm/Graph188

[파이썬] 백준 9019 : DSLR (골드4) [파이썬] 백준 9019 : DSLR (골드4) 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 문제 풀이 0. 방향성 생각 연산 맞춰서 구현하기 BFS로 탐색 진행하고 가장 먼저 발견했을 때 명령어 출력 1. 입력 from collections import deque import sys input = lambda : sys.stdin.readline().rstrip() cmd = dict(zip((0,1,2,3),('D','S','L','R'))) for _ in range(int(input().. 2023. 8. 3.
[파이썬] 백준 17090 : 미로 탈출하기 (골드3) [파이썬] 백준 17090 : 미로 탈출하기 (골드3) 17090번: 미로 탈출하기 크기가 N×M인 미로가 있고, 미로는 크기가 1×1인 칸으로 나누어져 있다. 미로의 각 칸에는 문자가 하나 적혀있는데, 적혀있는 문자에 따라서 다른 칸으로 이동할 수 있다. 어떤 칸(r, c)에 적힌 문 www.acmicpc.net 문제 풀이 0. 방향성 생각 DP 태그 있어서 이용할 수도 있는데 내리막길 문제처럼 경로의 수를 카운트 하는게 아니라서 안써도 무방하다. 1. padding : 외곽 'x'로 채우기 2. 탈출 가능한 외곽지점 큐에 추가 3. 탈출 가능 지점에서 BFS 진행. 오른쪽 탐색 -> L이면 탈출 가능 왼쪽 탐색 -> R이면 탈출 가능 위쪽 탐색 -> D면 탈출 가능 아래쪽 탐색 -> U면 탈출 가능 .. 2023. 7. 31.
[파이썬] 백준 1525 : 퍼즐 (골드2) [파이썬] 백준 1525 : 퍼즐 (골드2) 문제 풀이 0. 방향성 생각 9!의 경우의 수를 탐색하는 것과 같다. 2차원 배열을 문자열로 바꾸어서 집합 visit에 넣은 후 탐색한다. 1. 입력 from collections import deque arr = [] for _ in range(3): arr.extend(input().split()) arr = ''.join(arr) 리스트로 받아준 후 문자열로 변환한다. 2. 방향 정의 moves = {0:(1,3), 2:(1,5), 6:(3,7), 8:(5,7), 1:(0,2,4), 3:(0,4,6), 5:(2,4,8), 7:(4,6,8), 4: (1,3,5,7)} 2차원 배열에서 왼쪽 위부터 0,1,2,...7,8 이라 하면, 인접한 위치로 갈 수 있다.. 2023. 7. 30.
[파이썬] 프로그래머스 : 단어 변환 (Lv.2) [파이썬] 프로그래머스 : 단어 변환 (Lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 0. 방향성 생각 시작단어를 words에 넣어놓고 이동 가능한 경로를 table 딕셔너리에 저장 후 거리 visit 딕셔너리도 만들기 무방향 그래프이므로 둘 다 추가해주기. target 단어 유무로 완성 유무 판별. 탐색이 가능한 경우에만 탐색 전체코드 from itertools import combinations as C from collections import deque def solution(begin,target,words): words = se.. 2023. 7. 20.