본문 바로가기
320x100

Blog189

[CLASS 3]백준 9095번, 9375번, 9461번, 11399번 9095번 : 1, 2, 3 더하기 아.. ㅠㅠ 이게 뭐라고 고민했을까... 종이에 써보면 바로 알 수 있는데 종이 안쓰고 머리로만 어찌 해보려다가 괜히 시간만 날렸다. dp라는 것은 바로 알 수 있고, 규칙성을 찾는 것이 중요하다. 4 이상의 수에 대해서 그 수를 1,2,3 의 합으로 만들 수 있는 모든 조합은 그 수 - 1 , 그 수 - 2, 그 수 - 3 을 만들 수 있는 경우의 수의 합이다. 그냥 간단하게 dp[i] = dp[i-1] + dp[i-2] + dp[i-3] 인 것이다! 왜냐하면, 그 수 - 1 의 모든 경우의 앞, 뒤에 +1을 해주고, 그 수 - 2 의 모든 경우의 앞 뒤에 +2를 해주고, 그 수 - 3의 모든 경우의 앞 뒤에 +3을 해주는 경우의 수 만큼이 구하려는 수의 경우의 수 .. 2021. 2. 1.
전체적인 레이아웃 개선 전체적인 레이아웃의 개선이 있었다. 기존의 페이지의 모습이 너무 흉측했기 때문에 일단 나름대로 개선해보았다. BEFORE AFTER 솔직히 훨씬 보기 좋아지긴 했지만 아직도 좀 그렇긴 하다. 그래도 이정도면 나름 만족한다. 이제 배포를 해보려 한다. AWS EC2를 사용해 배포할 것이다. 배포하면 아마 또 엄청난 오류들과 마주치게 될 것이다. 열심히 해야지.. 2021. 2. 1.
[CLASS 3]백준 2630번 - 색종이 만들기 2630번 : 색종이 만들기 기초적인 분할 정복 문제라고 할 수 있겠다. 큰 사각형부터 시작해서 조건이 맞지 않는다면 작은 사각형 4개로 나누는 과정을 반복하여 해결할 수 있다. 재귀함수로 구현할 수 있다. 내 코드: import sys input = sys.stdin.readline n = int(input()) p = [list(map(int,input().split())) for _ in range(n)] zero = 0 one = 0 def find(y,x,n): global zero,one temp = p[y][x] for ty in range(y,y+n): for tx in range(x,x+n): if temp != p[ty][tx]: find(y,x,n//2) find(y,x+n//2,n/.. 2021. 1. 31.
[CLASS 3]백준 2606번 - 바이러스 2606번 : 바이러스 DFS 혹은 BFS의 기초 문제이다. 둘 중 하나의 방법을 통해 1번 컴퓨터와 연결된 컴퓨터를 모두 방문한 후 그 수를 출력해주면 된다. 먼저 DFS와 재귀함수로 푼 풀이이다. 내 코드(DFS,재귀): import sys input = sys.stdin.readline coms = [set() for _ in range(int(input())+1)] for _ in range(int(input())): a, b = map(int,input().split()) coms[a].add(b) coms[b].add(a) def dfs(graph,v): for i in graph[v]: if not visited[i]: visited[i] = True dfs(graph,i) visited =.. 2021. 1. 31.