본문 바로가기

알고리즘210

[BAEKJOON] 1010 다리놓기 문제 요약알고리즘 분류: 조합, 동적계획법난이도: Silver5문제내용:각케이스마다 서쪽과 동쪽 중복되지않고 연결할수 있는 방법을 출력해라.사이트 주소: https://www.acmicpc.net/problem/1010 11051번: 이항 계수 2첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\))www.acmicpc.net문제풀이 위 문제는 서쪽과 동쪽을 연결할수 있는 다리를 놓아야 하는데 중복이 되지 않아야 하고 서쪽 지점보다 동쪽 지점이 많아야 한다. 그러므로 조합을 생각해서 풀면된다. 2가지 푸는 방법이 있다. 하나는 조합공식을 사용해서 푸는 방법과 동적계획법으로 푸는 방식이다. 조합 공식 사용 방법위의 조합 공식으로 사용 하.. 2022. 10. 4.
[BAEKJOON] 1629 곱셈 - Python 문제 요약 알고리즘 분류: 재귀호출, 분할정복 난이도: Silver1 문제내용: A 를 B 번 곱해서 C로 나눠서 출력한다. 사이트 주소: https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제풀이 위 문제는 아래처럼 pow 함수 사용하거나 제곱으로 연산하거나 for문으로 사용하면 시간 초과가 나올것이다. A, B, C = map(int, input().split()) # 그냥 제곱 연산으로 사용할 경우 result = A ** B % C # for 문으로 사용할 경우 result = 1 for i in ran.. 2022. 10. 3.
[BAEKJOON] 11051 이항 계수 2 문제 요약 알고리즘 분류: 조합, 동적계획법 난이도: Silver3 문제내용: 이항 계수( N K)를 10007로 나눈 나머지를 결과를 출력해라 사이트 주소: https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제풀이 2가지 푸는 방법이 있다. 하나는 조합공식을 사용해서 푸는 방법과 동적계획법으로 푸는 방식이다. 조합 공식 사용 방법 위의 조합 공식으로 사용 하면 된다. 파이썬에서는 factorial 함수를 제공한다. DP로 접근하는 방법 위 사진은 파스칼 삼각형이다. 파스칼 삼각형의 공식은 아래와 같이 정의 할수 .. 2022. 9. 30.
[BAEKJOON] 1149 RGB거리 문제 요약 알고리즘 분류: 동적계획법 난이도: Silver1 문제내용: 빨강, 초록, 파랑색의 N개 집이 있다. 그리고 각 집에 각 색에 칠하는 색의 비용이 있다. i번째와와 i-1, i + 1번째 색은 달라야 한다. 모든 집의 최소 비용으로 칠하는 비용을 구하여라 사이트 주소: https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제풀이 문제 접근 방법 이 문제는 동적계획법이다. 그래서 점화식을 짜는 방법만 알면 된다. 위 .. 2022. 9. 26.
[BAEKJOON] 3036 링 문제 요약 알고리즘 분류: 유클리드 호제법 난이도: Silver4 문제내용: 첫 번째 링과 그 뒤의 각 링의 비례 하는 회전 수를 기약 분수 형태로 표현해라. 사이트 주소: https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net 문제 풀이 1. 문제 접근 방법 이 문제는 회전의 비례를 구해야 한다. 예를 들어 A가 20 바퀴를 돌아가고 B가 12 바퀴 돌아 간다고 가정 한다면 A : B = 20 : 12 = 10 : 6 = 5 : 3 으로 표현 할수있다. 그래서 기약 분수를 구하기 위.. 2022. 9. 23.
[BAEKJOON] 2981 검문 문제 요약 알고리즘 분류: 유클리드 호제법 난이도: Gold4 문제내용: 종이의 적힌 수에서 M으로 나누었을 때 나머지가 같은 M의 수를 모두 구하세요. M은 1보다 커야 한다. 사이트:https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 문제풀이 import sys input = sys.stdin.readline array = [int(input()) for _ in range(int(input()))] min_num = min(array) result = [] .. 2022. 9. 22.