백준 153

[백준] 13460 구슬 탈출2 python

www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] def backtrack(inboard, inred, inblue, ind=0): global result, cnt, delta # if result == 1: # return if ind == 10: return else: for i in range(4): tmp_board = [in..

STUDY/Algorithm 2021.04.14

[백준] 10844 쉬운계단수 python

www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net n = int(input()) dp = [[0] * 10 for _ in range(101)] for i in range(1, 10): dp[1][i] = 1 for i in range(2, n + 1): for j in range(10): if j == 0: dp[i][j] = dp[i - 1][1] elif j == 9: dp[i][j] = dp[i - 1][8] else: dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j + 1] print(sum(dp[n]) % 1000000000) dp[5]..

STUDY/Algorithm 2021.04.13

[백준] 2579 계단오르기 python

www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net n = int(input()) stair = [0] + [int(input()) for _ in range(n)] if n == 1: print(stair[-1]) else: dp = [0] * (n + 1) dp[0] = stair[0] dp[1] = max(stair[0] + stair[1], stair[1]) dp[2] = max(stair[0] + stair[2], stair[1] + stair[2]) for i i..

STUDY/Algorithm 2021.04.13

[백준] 5427 불 python

www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net from collections import deque delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] def bfs(q): man_move = 1 while q: x, y, z = q.popleft() if z == 0 and (x == 0 or x == h - 1 or y == 0 or y == w - 1): return visit[x][y][0] if z == 0: man_move -= 1 ..

STUDY/Algorithm 2021.03.31

[백준] 2206 벽부수고 이동하기 python

www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net import sys sys.stdin = open('2206_input.txt','r') from collections import deque n, m = map(int, input().split()) matrix = [input() for _ in range(n)] visit = [[(-1, True)] * m for _ in range(n)] visit[0][0] = (1, True..

STUDY/Algorithm 2021.03.30

[백준] 2660 회장뽑기 python

www.acmicpc.net/problem/2660 2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net from collections import deque def bfs(queue): visited = [0] * (n + 1) visited[queue[0]] = 1 while queue: x = queue.popleft() for adjacent in link_dict[x]: if visited[adjacent]: continue queue.append(adjacent) visited[adjacent] = vi..

STUDY/Algorithm 2021.03.28

[백준] 2636 치즈 python

https://acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net from collections import deque def bfs(q): melting = 0 melt_list = set() while q: x, y = q.popleft() for i in range(4): dx = x + delta[i][0] dy = y + delta[i][1] if dx = h + 2 or dy = w + 2: continue if visited[dx][dy]: continue..

STUDY/Algorithm 2021.03.28

[백준] 12904 A와B python

www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net s, t = input(), input() while len(t)>len(s): tmp = t[-1] t = t[:-1] if tmp == 'B': t = t[::-1] if t == s: print(1) else: print(0) 플래티넘보고 이거 봐서그런가 너무 쉽게 풀었다.

STUDY/Algorithm 2021.03.26

[백준] 12967 pqr python 못풀었다.

www.acmicpc.net/problem/12967 12967번: pqr N개의 수로 이루어진 배열 A과 정수 K가 주어진다. 0 ≤ p < q < r < N 이면서, A[p] * A[q] * A[r]이 K로 나누어 떨어지는 (p, q, r) 쌍의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net from itertools import combinations def gcd(y, x): if y < x: # 항상 y가 더 크게 y, x = x, y while x != 0: t = y % x y, x = x, t return abs(y) N, K = map(int, input().split()) n_list = list(map(int, input().split())) # N의 원소와 K 의..

STUDY/Algorithm 2021.03.26