Problem Solving/Baekjoon
-
[백준] 1932번 문제 (정수 삼각형) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 4. 17:49
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net t = int(input()) nums = [list(map(int, input().split())) for _ in range(t)] dp = [] for n in nums: dp.append([0] * len(n)) dp[0][0] = nums[0][0] for i in range(1, t): for j in range(len(nums[i])): if j == 0: dp[i][j] = max(dp[i][j], nums[i][j] + dp[i - 1][j]) elif..
-
[백준] 2210번 문제 (숫자판 점프) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 23. 15:28
https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net import sys sys.setrecursionlimit(10 ** 7) input = sys.stdin.readline mtx = [list(map(int, input().split())) for _ in range(5)] result = set() def dfs(i, j, ch): if len(ch) == 6: result.add(ch) return..
-
[백준] 10988번 문제 (팰린드롬인지 확인하기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 23. 15:24
https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net from collections import deque import sys s = input() dq = deque(s) while len(dq) > 1: if dq.pop() != dq.popleft(): print(0) sys.exit(0) print(1) 사실 reverse()나 reversed() 함수를 이용해서 아주 간단하게 풀 수 있다. 하지만 그러면 의미가 없을 것 같아서.. 간략하게라도 스택을 이용해서 풀었다. 스택의 양 끝 쪽의 값을 비..
-
[백준] 17608번 문제 (막대기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:17
https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net t = int(input()) stack = [] for _ in range(t): bar = int(input()) while stack and stack[-1]
-
[백준] 10026번 문제 (적록색약) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:13
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net from collections import deque dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(i, j, v, arr): q = deque() q.append([i, j]) arr[i][j] = 0 while q: a, b = q.popleft() for k in range(4): x = a + dx[k] y = b + dy[k] if 0
-
[백준] 1032번 문제 (명령 프롬프트) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:09
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net import sys input = sys.stdin.readline t = int(input()) strings = [] for _ in range(t): strings.append(list(input().rstrip())) length = len(strings[0]) result = "" for i in range(length): cur_chr = None isRight = True for..
-
[백준] 1012번 문제 (유기농 배추) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:00
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import sys sys.setrecursionlimit(10 ** 7) input = sys.stdin.readline def dfs(i, j): if i = n or j = m or mtx[i][j] == 0: return mtx[i][j] = 0 dfs(i - 1, j) dfs(i + 1, j) dfs(i, j - 1) dfs(i, j + 1) t = int(inpu..
-
[백준] 1904번 문제 (01타일) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 14. 15:07
https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net n = int(input()) dp = [0] * 1000001 dp[1], dp[2] = 1, 2 for i in range(3, n + 1): dp[i] = (dp[i - 1] + dp[i - 2]) % 15746 print(dp[n]) 경우의 수를 차근 차근 구해보니 규칙을 발견할 수 있었다. 입력받은 숫자 n에 대하여 규칙은 아래와 같다. n 2진 수열의 개수 1 1 2 2 3 3 4 5 5 8..
-
[백준] 11279번 문제 (최대 힙) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 14. 15:00
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net import heapq import sys input = sys.stdin.readline t = int(input()) heap = [] for _ in range(t): cmd = int(input()) if cmd == 0: try: print(heapq.heappop(heap)[1]) except: print(0) else: heapq.heappush(heap, (-cm..
-
[백준] 1927번 문제 (최소 힙) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 14. 14:55
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import heapq import sys input = sys.stdin.readline t = int(input()) heap = [] for _ in range(t): cmd = int(input()) if cmd == 0: try: print(heapq.heappop(heap)) except: print(0) else: heapq.heappush(heap, cmd) 최소..