본문 바로가기
알고리즘/BOJ

[Python] 백준 14226: 이모티콘

by PIAI 2021. 10. 4.

https://www.acmicpc.net/problem/14226

 

14226번: 이모티콘

영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만

www.acmicpc.net

1. 백그라운드와 클립보드 둘다 작업해야하기 때문에 2차원 ch 배열을 만들어준다.

2. 조건중에서 -1 이 있기 때문에 값이 s값을 넘어갈수도 있으므로 배열을 s*2+1 만큼 선언해준다.

3. bfs를 사용하였고 조건에 맞춰서 queue에 삽입한다.

from collections import deque

s = int(input())
ch = [[0 for _ in range(2001)] for _ in range(2001)]
queue = deque()
queue.append([1, 0, 0])
while queue:
    bg, cl, time = queue.popleft()
    if bg == s:
        print(time)
        break
    if ch[bg][cl]:
        continue
    ch[bg][cl] = 1
    if bg >= 1:
        queue.append([bg-1, cl, time+1])
        queue.append([bg, bg, time+1])
    if cl:
        queue.append([bg+cl, cl, time+1])

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

[Python] 백준 7579: 앱  (0) 2021.10.04
[Python] 백준 5582: 공통 부분 문자열  (0) 2021.10.04
[Python] 백준 2631: 줄세우기  (0) 2021.10.04
[Python] 백준 5554: 1학년  (0) 2021.10.03
[Python] 백준 10942: 팰린드롬?  (0) 2021.10.03

댓글