320x100 PS84 [CLASS 4]백준 2448번 - 별 찍기 2448번 : 별 찍기 재미도 없고... 머리만 아픈 별찍기... 분류에는 재귀라고 나와있는데 재귀는 쓰지도 않았다. 내 코드: from math import log s = [' * ', ' * * ', '***** '] def star(shift): c = len(s) for i in range(c): s.append(s[i] + s[i]) s[i] = " " * shift + s[i] + " " * shift n = int(input()) k = int(log(n // 3, 2)) for i in range(k): star(int(pow(2, i))) for i in range(n): print(s[i]) 2021. 5. 13. [CLASS 4]백준 2206번 - 벽 부수고 이동하기 2206번 : 벽 부수고 이동하기 말 그대로 벽을 부수며 이동할 수 있는 문제이다. 벽은 단 한번만 부술 수 있다. BFS를 통해 탐색하면서 벽을 부쉈는지 안 부쉈는지에 따라 분기하면 된다. 내 코드: # dawitblog.tistory.com/156 from sys import stdin from collections import deque input = stdin.readline R, C = map(int,input().split()) mat = [input().rstrip() for _ in range(R)] # 방문 확인 visited = [[[0,0] for _ in range(C)] for _ in range(R)] visited[0][0][0] = 1 # 큐 q = deque([(0,0,1,.. 2021. 5. 12. [CLASS 4]백준 2096번 - 내려가기 2096번 : 내려가기 이전에 비슷한 DP문제를 풀어본적이 있어서 드물게 빠르게 풀 수 있는 문제였다. 풀고나서 알았는데 이런 문제를 슬라이딩 윈도우 라고 부르나보다. 다만 주의할 점은 메모리 제한이 4MB로 정해져 있기 때문에 100만 길이의 리스트를 만들면 십중팔구 메모리 초과에 걸릴 것이다. 따라서 그냥 한줄씩 입력받으면서 DP를 수행하면 된다. 내 코드: # dawitblog.tistory.com/154 from sys import stdin input = stdin.readline n = int(input()) a,b,c = map(int,input().split()) current_max = [a,b,c] current_min = [a,b,c] for _ in range(n-1): a,b,c .. 2021. 5. 10. [CLASS 4]백준 1967번 - 트리의 지름 1967번 : 트리의 지름 이 문제를 풀기 위한 핵심 아이디어만 알았다면 쉽게 풀 수 있다. 문제에 힌트가 나와 있는데, 트리의 지름의 양 끝에 해당하는 두 노드를 선택해서 양쪽으로 당기면 나머지 노드들은 해당 원 안에 들어가게 된다고 나와 있다. 여기서 얻을 수 있는 힌트는, 트리 내의 임의의 노드에서 가장 먼 노드를 구하면, 해당 노드는 무조건 지름의 양 끝 중 하나라는 것이다. 이를 몰랐다면 풀기 매우 힘든 문제가 될 수 있다.(나처럼...) 이를 눈치챘다면 쉽게 풀 수 있다. 내 코드: # dawitblog.tistory.com/153 from sys import stdin,setrecursionlimit input = stdin.readline # 재귀깊이 설정 setrecursionlimit(.. 2021. 5. 8. 이전 1 2 3 4 5 6 ··· 21 다음