Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정렬
- flask
- 파이썬
- 자바
- 백준
- 자바 디자인 패턴
- String 함수
- golang struct
- 백준 12761
- 트리 순회
- MongoDB Realm
- 12761번 돌다리
- http 완벽가이드
- 도메인 주도 개발 시작하기
- 백준 파이썬
- 고 배열
- 하둡
- go
- ddd
- 자바 디자인패턴
- http 개념
- golang
- 백준 12761번
- 12761 돌다리
- 우분투
- 몽고디비 렘
- hadoop
- domain driven develop
- 도메인 주도 개발
- 백준 사이트
Archives
- Today
- Total
개발바닥
BOJ_12761 [ 돌다리 ] [ 파이썬 ] 본문
반응형
문제
https://www.acmicpc.net/problem/12761
문제 해결 방법
bfs로 문제 해결 방법을 접근했습니다.
총 이동 가능한 경우 8가지를 현재 위치에서 다음 위치를 계산해서
범위를 벗어나지 않았고 처음 방문했다면 큐에 넣으면 된다.
소스 코드 보기
https://github.com/jokerKwu/BOJ_Algorithm/blob/master/python/BOJ_12761.py
from collections import deque
import sys
input = sys.stdin.readline
A, B, N, M = map(int,input().split())
m_x = [1, -1, A, B, -A, -B, A, B]
visit = [0 for _ in range(100001)]
cnt = [0 for _ in range(100001)]
q = deque()
visit[N] = 1
q.append(N)
def bfs():
while q:
x = q.popleft()
for i in range(8):
if i < 6:
nx = x + m_x[i]
if 0<=nx<=100000 and visit[nx] == 0:
visit[nx] = 1
q.append(nx)
cnt[nx] = cnt[x] + 1
else:
nx = x * m_x[i]
if 0<=nx<=100000 and visit[nx] == 0:
visit[nx] = 1
q.append(nx)
cnt[nx] = cnt[x] + 1
bfs()
print(cnt[M])
반응형
'[ Algorithm ] > [ PYTHON ]' 카테고리의 다른 글
BOJ_11058 [ 크리보드 ] [ 파이썬 ] (0) | 2020.06.10 |
---|---|
BOJ_2864 [ 5와 6의 차이 ] [ 파이썬 ] (0) | 2020.06.01 |
BOJ_1463 [ 1로 만들기 ] [ 파이썬 ] (0) | 2020.05.26 |
BOJ_1371 [ 가장 많은 글자 ] [ 파이썬 ] (0) | 2020.05.23 |
BOJ_14225 [ 부분수열의 합 ] [ 파이썬 ] (0) | 2020.05.23 |
Comments