https://www.acmicpc.net/problem/14226
14226번: 이모티콘
영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만
www.acmicpc.net
💡dfs를 사용해서 클립보드를 탐색하는 문제였다. 화면의 이모티콘 개수와 클립보드에 복사된 이모티콘 개수가 함께 필요하기 때문에 2차원 배열을 사용해주었다.
각 조건에 맞게 if문을 작성하고, for문을 돌면서 결과값을 계산한다.
쉬울 줄 알았는데 생각보다 어려웠던 문제..
✔소스코드
import sys
from collections import deque
N=int(sys.stdin.readline())
visited=[[-1]*(N+1) for i in range(N+1)]
def dfs():
q=deque()
q.append((1,0))
visited[1][0]=0
while q:
a,b=q.popleft()
if visited[a][a]==-1:
visited[a][a]=visited[a][b]+1
q.append((a,a))
if a+b<=N and visited[a+b][b]==-1:
visited[a+b][b]=visited[a][b]+1
q.append((a+b,b))
if a-1>=0 and visited[a-1][b]==-1:
visited[a-1][b]=visited[a][b]+1
q.append((a-1,b))
result=-1
for i in range(N+1):
if visited[N][i]!=-1:
if result==-1 or result>visited[N][i]:
result=visited[N][i]
print(result)
dfs()
'백준문제풀이' 카테고리의 다른 글
[백준 문제풀이] 2250번 : 트리의 높이와 너비 (0) | 2021.09.26 |
---|---|
[백준 문제풀이] 1991번 : 트리 순회 (0) | 2021.09.26 |
[백준 문제풀이] 13913번 : 숨바꼭질4 (0) | 2021.09.19 |
[백준 문제풀이] 1697번 : 숨바꼭질 (0) | 2021.09.17 |
[백준 문제풀이] 2178번 : 미로탐색 (0) | 2021.09.01 |