[백준][Python] 15991 1,2,3더하기 6 import sys input = sys.stdin.readline dp = [1,1,2,2,3,3] for i in range(6,100001): dp.append((dp[i-2]+dp[i-4]+dp[i-6])%1000000009) for _ in range(int(input())): n = int(input()) print(dp[n]) practivceAlgorithm/백준 2021.09.07
[백준][Python] 14405 피카츄 pkai 만 조심하면된다. print('YES' if not input().replace('pi',' ').replace('ka',' ').replace('chu',' ').strip() else 'NO') practivceAlgorithm/백준 2021.09.07
[백준][Python] 10026 적록색약 그냥 bfs 2번. 100*100이라 시간은 넉넉했다. import sys input = sys.stdin.readline from collections import deque def bfs(x,y,color): visited[x][y] = True q = deque() q.append([x,y]) while q: x,y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 practivceAlgorithm/백준 2021.09.07
[백준][Python] 9461 파도반 수열 간단한 dp문제. 규칙이 보인다. for _ in range(int(input())): n = int(input()) dp = [1,1,1,2,2] if n>5: for i in range(5,n): dp.append(dp[i-1]+dp[i-5]) print(dp[n-1]) practivceAlgorithm/백준 2021.09.07
[백준][Python] 9375 패션왕 신해빈 모든 조합의 경우의 수는 (각 종의 수+1(안 입거나 무언갈 입거나의 경우의 수)) 의 곱 -1(아무것도 안 입는 경우의 수) import sys input = sys.stdin.readline from collections import defaultdict for _ in range(int(input())): n = int(input()) clothes = defaultdict(int) ans = 1 for _ in range(n): name, type_c = input().split() clothes[type_c] += 1 for cloth in clothes: ans *= clothes[cloth]+1 print(ans-1) practivceAlgorithm/백준 2021.09.07
[백준][Python] 9019 DSLR 대놓고 bfs import sys input = sys.stdin.readline from collections import deque def bfs(start): visited[start] = True q = deque() q.append([start,'']) while q: cur_register, commands = q.popleft() if cur_register==target: return commands for command in 'DSLR': if command=='D': next_register = (cur_register*2)%10000 elif command=='S': next_register = (cur_register-1)%10000 elif command=='L': next_reg.. practivceAlgorithm/백준 2021.09.07
[백준][Python] 7569 토마토 3차원 6방 탐색으로 바뀐 토마토 import sys input = sys.stdin.readline from collections import deque def bfs(red_tomatoes, tomato_cnt): day = -1 while red_tomatoes: n = len(red_tomatoes) for _ in range(n): x,y,z = red_tomatoes.popleft() for dx,dy,dz in d: nx = x + dx ny = y + dy nz = z + dz if 0 practivceAlgorithm/백준 2021.09.07
[백준][Python] 5525 IOIOI cnt >= N 조건 안넣어서 좀 걸 import sys input = sys.stdin.readline N = int(input()) M = int(input()) S = input().rstrip().replace('IO','*') + 'F' flag = 0 cnt = 0 ans = 0 for char in S: if flag: if char=='*': cnt += 1 else: if cnt >= N: if char=='I': ans += 1 ans += cnt - N cnt = 0 flag = 0 else: if char=='*': flag = 1 cnt += 1 print(ans) practivceAlgorithm/백준 2021.09.07
[백준][Python] 1949 우수마을 tree_dp 마지막 연습 우수마을. 기본형이다. import sys input = sys.stdin.readline sys.setrecursionlimit(10**5) def dfs(v): visited[v] = True dp[v][1] = citizen[v-1] for u in graph[v]: if not visited[u]: dfs(u) dp[v][0] += max(dp[u][0],dp[u][1]) dp[v][1] += dp[u][0] N = int(input()) citizen = list(map(int, input().split())) graph = {i: [] for i in range(1,N+1)} visited = {i: False for i in range(1,N+1)} for _ in.. practivceAlgorithm/백준 2021.09.07
[백준][Python] 16973 직사각형탈출 브루트뽀쓰 벽좌표는 미리 담아서 검사 import sys input = sys.stdin.readline from collections import deque def move(x,y): q = deque() q.append([x,y,0]) visited[x][y] = True while q: x,y,cnt = q.popleft() if x==Fr-1 and y==Fc-1: return cnt for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 practivceAlgorithm/백준 2021.09.06