문제풀이

https://www.acmicpc.net/problem/1261코드 (BFS)from collections import dequem, n = map(int, input().split())maze = [input() for _ in range(n)]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]break_num = [[n*m]*m for _ in range(n)]break_num[0][0] = 0q = deque([(0, 0)])while q: x, y = q.popleft() for i in range(4): nx = x+dx[i] ny = y+dy[i] if 0 cnt: break_num[nx][ny] = ..
·문제풀이/DP
https://www.acmicpc.net/problem/10164코드n, m, k = map(int, input().split())def find_path(r, c): # 세로 길이가 r, 가로 길이가 c인 격자에서 경로의 개수 구하기 dp = [[0]*(c) for _ in range(r)] dp[0][0] = 1 for i in range(r): for j in range(c): if i+1  풀이목적지까지 경로의 개수 구하는데 중간에 꼭 경유해야 하는 곳이 있다면 다음과 같이 출발지-경유지까지 가는 길과 경유지-목적지까지 가는 길의 경로의 수를 각각 구해서 곱하면 된다.1번이 출발지, 15번이 목적지, 8번이 경유지라면 (1번에서 8번까지 가는..
https://www.acmicpc.net/problem/14405 코드s = input()tmp = ""ans = "YES"for i in range(len(s)): tmp += s[i] if tmp in ["pi", "ka", "chu"]: tmp = "" if len(tmp) >= 3: ans = "NO" breakprint(ans if tmp == "" else "NO")정말 단순한 방법을 사용해서 풀 수 있는 문제긴 하지만, 다 풀고 다른 사람들 코드를 보다가 정규표현식을 이용하여 풀 수 있다는 것을 알았다.import res = input()pattern = re.compile(r'^(pi|ka|chu)*$')if pattern.match(..
https://www.acmicpc.net/problem/7490 코드ans = []def bt(n, idx, exp): if idx == n: exp += str(idx) if eval(exp.replace(" ", '')) == 0: ans.append(exp) return for mid in ['+', '-', ' ']: bt(n, idx+1, exp+str(idx)+mid)for _ in range(int(input())): n = int(input()) ans = [] # 정답 배열 초기화 bt(n, 1, "") ans.sort() # ASCII 순서로 정렬 for i in rang..
·문제풀이/DP
https://www.acmicpc.net/problem/17212 코드n = int(input())dp = [int(1e9)]*(n+1) # dp[i]: i원 만드는 데 필요한 동전의 최소 개수dp[0] = 0for i in range(1, n+1): for j in [1, 2, 5, 7]: if i-j
딜레이레이
'문제풀이' 카테고리의 글 목록