BaekJoon 9

[python/11054]가장 긴 바이토닉 부분 수열

https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 이 문제는 '가장 긴 증가하는 부분 수열' 문제를 응용한 것입니다. https://onlab94.tistory.com/54 [python/11053]가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10..

알고리즘/백준 2020.05.25

[python/1149]RGB거리

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같은 자연수이다. www.acmicpc.net 더보기 내 코드 규칙 중에서 i-1의 집 색과 i의 집 색이 같으면 안 되고 i+1의 집 색과 i의 집 색이 같으면 안 되기 때문에 i 기준의 식을 세워보아야 한다. RGB[i][빨간색] = 최솟값(RGB[i-1][초록색], RGB[i-1][파란색]) + RGB[i][빨간색] RGB[i][초록색] = 최솟값(RGB[i-1][빨간색], RGB[i-1][파란색]..

알고리즘/백준 2020.04.14

[python/1904]01타일

https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수 www.acmicpc.net 더보기 내 코드 # 01 타일 # 피보나치와 비슷한 문제이다. if __name__=='__main__': N = int(input())..

알고리즘/백준 2020.04.09

[python/1003]피보나치 함수

https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 더보기 내 코드 cnt0 = 0 cnt1 = 0 # 문제에서 나온 함수 def fibonacci(N): global cnt0, cnt1 if N == 0: cnt0 += 1 return 0 elif N == 1: cnt1 += 1 return 1 else: return fibonacci(N-1) + fibonacci(N-2) if __name__=='__main__': # T 입력 받기 T = int(input()) # N의 범위가 40 이하 # N이 0일 때 (0의 개수, 1의개수) == [..

알고리즘/백준 2020.04.07

[python/2748]피보나치 수2

https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 www.acmicpc.net 더보기 내 코드 import sys # 재귀형식으로 풀 경우 # 반복 작업을 하기 때문에 느림 def fibo(n): return ..

알고리즘/백준 2020.04.02

[python/14888]연산자 끼워넣기

https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net 더보기 내 코드 import sys def Insert_Operator(now, level): if level == N: global min_n, max_n max_n = max(now, max_n) min_n = min(now, min_n) return # 더하기 if oper[0] > 0: op..

알고리즘/백준 2020.03.28

[python/2446]별 찍기 - 9

https://www.acmicpc.net/problem/2446 2446번: 별 찍기 - 9 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 더보기 내 코드 어려웠던 점을 찾아보자면, 답에서는 '*'의 왼쪽에만 스페이스가 들어가는데 오른쪽에도 넣어서 헤맸었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def star_9(n): tmp = 2*n-1 space = 0 for i in range(1, 2*n): print(' ' * space + '*' * tmp) if i

알고리즘/백준 2020.03.21
728x90