본문 바로가기

알고리즘231

[BAEJOON] 1043 거짓말 문제 요약 알고리즘 분류: 정렬, 재귀 난이도: Gold4 문제내용: 사람수 N, 파티수 M 있다. 기존에 진실을 알수 있는 사람의 수와 번호가 있다. 진실을 알 수 있는 사람이랑 파티에 있는 경우 다른 사람이 알수 있어서 과장된 이야기를 할수없다. 최대한 피해서 과장된 이야기 할수 있는 파티 개수를 구해라 사이트 주소: https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 문제풀이 알고있는 사람을 set 구조를 선언한다. 파티에 참여하는 사람도 set 구조로.. 2022. 9. 25.
[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.
[BAEJOON] 1934 최소공배수 문제 요약 알고리즘 분류: 유클리드 호제법 난이도: Bronze1 문제내용: 테스트케이스 개수만큼 두 수의 최소 공배수를 구하면 된다. 사이트: https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 문제풀이 위 문제는 유클리드 호제법으로 푸는 방법이다. 유클리드 호제법에 내한 내용은 아래의 사이트에 참조 하면된다 [알고리즘/이론] - 유클리드 호제법(Euclidean algorithm) 유클리드 호제법(Euclidean algor.. 2022. 9. 21.
유클리드 호제법(Euclidean algorithm) 이론1. 유클리드 호제법이란?두 개의 정수 혹은 다수의 자연수에서 최대공약수를 구하는 알고리즘이다. 원리는 두 수가 서로 나눠서 나머지를 구한다. 만약 나머지가 0이면 그 수가 최대 공약수가 되는것이다. 만약에 나머지가 0이 아니면 나머지가 0일 될때까지 두 수를 나누어 주면 된다. 기존 최대공약수를 구할때는 2개 이상에 각 수의 약수를 구한다음 공통으로 있는 약수중 최대값을 구해야 했다. 위의 그림을 보면 30, 24에서 학교에서 기본것으로 배운 토대로 최대공약수를 구한다면 먼저, 약수를 구해서 공통된 수가 6, 3, 2, 1이고 이중에서 가장 큰것이 6이다. 6이라는 숫자가 30, 24 최대 공약수이다 수가 30, 24라서 각 약수의 수가 적어서 구하는데 금방 걸리는데 100단위 또는 1000단위 이.. 2022. 9. 21.
[BAEKJOON] 24060 알고리즘 수업 - 병합 정렬 1 병합정렬 병합정렬은 정렬 알고리즘중 하나이다. 병합 정렬의 자세한 내용은 아래 사이트에 참조 하면 된다. https://ko.wikipedia.org/wiki/%ED%95%A9%EB%B3%91_%EC%A0%95%EB%A0%AC 합병 정렬 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 합병 정렬 또는 병합 정렬(merge sort)은 O(n log n) 비교 기반 정렬 알고리즘이다. 일반적인 방법으로 구현했을 때 이 정렬은 안정 정렬에 속하며, 분할 정복 알고리 ko.wikipedia.org 문제 요약 알고리즘 분류: 정렬, 재귀 난이도: Silver4 문제내용: 문자열길이를 출력한다. 사이트 주소: https://www.acmicpc.net/problem/24060 24060번: .. 2022. 9. 19.