전체 글

전체 글

    [백준1149&파이썬] DP를 사용할때 확정되는 값에 대한 명확한 근거를 찾자

    # 문제 백준 1149 RGB 거리 파이썬 풀이 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net # 코드 ''' - 집을 조건에 맞게 칠할때, 최소 비용을 구해라 - 중점을 두는 것을, 현재 값에 중점을 두고 과거를 봐야한다. ''' import sys N = int(sys.stdin.readline().strip()) arr = list() # RGB로 칠하는 비용 for _ in range(N): line = list(map(int, sys.stdin.readline().split()..

    [백준1991&파이썬] 파이썬에서 이진트리의 전위,중위,후위 간단히 수행해보자.

    # 문제 백준 1991 트리 순회 파이썬 풀이 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net # 코드 import sys from collections import defaultdict N = int(sys.stdin.readline().strip()) graph = defaultdict(lambda : defaultdict(str)) LEFT = 1 RIGHT = -1 for _ in range(N) : parent, left, right = sys.stdin.readline().split() ..

    [백준16953&파이썬] BFS를 이용해 1차원 탐색하기

    # 문제 백준166953 A->B 파이썬 풀이 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net # 코드 ''' - BFS를 이용한 전형적인 풀이 같다. ''' import sys from collections import deque from collections import defaultdict A, B = map(int, sys.stdin.readline().split()) dq = deque() visit = defaultdict(bool) dq.append((A, 1)) visit[A] = True # 초기 방문 while len(dq) != 0: cur = dq.popleft() # ( node, cnt ) next1 = (cu..

    [트러블슈팅] Github Action으로 스프링부트 CI/CD 적용중 생기는 경로 이슈

    [트러블슈팅] Github Action으로 스프링부트 CI/CD 적용중 생기는 경로 이슈

    # 이슈 상황 Github Action을 이용한 배포 자동화 시스템 구축 할때 gradlew을 통한 빌드를 위한 gradle.yml을 작성할때 발단 1. 현재 프로젝트는 하나의 레포지토리에 front / backend 두개로 나뉘어 있음. 그렇기 때문에 backend브런치에 gradle.yml을 작성해야함. -> 기본 작성시에는 자동으로 main에 작성되게 됨 발단 2. 인텔리제이로 스프링 부트 프로젝트를 설정했고 root경로가 래핑되어 잡혀 버림 ## 이슈 키워드 Run chmod +x /backend/server/gradlew chmod: cannot access '/backend/server/gradlew': No such file or directory Error: Process completed..

    [백준2407&파이썬] 조합의 경우의 수를 구할때는 수학 공식을 이용하자

    # 문제 백준 2407 조합 파이썬 풀이 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net # 코드 import sys n,m = map(int,sys.stdin.readline().split()) arr = [i for i in range(1,n+1)] # nCm # n! / (n-r)! * r! # DP 로 팩토리얼을 구하자 mulit = 1 cnt = 2 dp = [-1] * 101 dp[1] = 1 while True : if cnt == n+1 : break dp[cnt] = dp[cnt-1]*cnt cnt+=1 print(dp[n] // ((dp[n-m]) * dp[m])) # math모듈을 이용해 쉽게 구할 수 있..