백준 19

[python/1932]정수 삼각형

https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다. 삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 www.acmicpc.net 더보기 문제 풀이 입력을 아래와 같이 했을 경우 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 최댓값은 아래의 그림과 같습니다...

알고리즘/백준 2020.04.16

[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/9461]파도반 수열

https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하 www.acmicpc.net 더보기 내 코드 0 번 1 번 2 번 3 번 4 번 5 번 6 번 7 번 8 번 9 번 1 1 1 2 2 3 4 5 7 9 9번 수 ..

알고리즘/백준 2020.04.11

[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/14889]스타트와 링크

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 더보기 내 코드 from itertools import combinations def solv(N, S, team): # 가장 작은 값 저장 및 비교 변수 min_tmp = 99999 for i in range(len(team) // 2): # start 팀 team_start = team[i] start_sum = 0 # link 팀 team_link = team[-i - 1] link_sum = 0 for j in..

알고리즘/백준 2020.03.31

[python/10039]평균 점수

https://www.acmicpc.net/problem/10039 10039번: 평균 점수 문제 상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다. 어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다. 학생 5명의 점수가 주어 www.acmicpc.net 더보기 내 코드 백준 문제에는 average_score함수를 사용해서 제출했다. 좀 더 좋은 방법이 있을 것 같다. 답을 출력할 때..

알고리즘/백준 2020.03.19

[python/14681]사분면 고르기

https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 문제 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다. 예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다. 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표 www.acmicpc.net 더보기 내 코드 제1 사분면 : (양수, 양수) 제2 사분면 : (음수, 양수) 제3 사분면 : (음수, 음수) 제4 사분면 :..

알고리즘/백준 2020.03.18
728x90