문제 요약 알고리즘 분류: 유클리드 호제법 난이도: 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 = [] ..
문제 요약 알고리즘 분류: 유클리드 호제법 난이도: 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..
이론 1. 유클리드 호제법이란? 두 개의 정수 혹은 다수의 자연수에서 최대공약수를 구하는 알고리즘이다. 원리는 두 수가 서로 나눠서 나머지를 구한다. 만약 나머지가 0이면 그 수가 최대 공약수가 되는것이다. 만약에 나머지가 0이 아니면 나머지가 0일 될때까지 두 수를 나누어 주면 된다. 기존 최대공약수를 구할때는 2개 이상에 각 수의 약수를 구한다음 공통으로 있는 약수중 최대값을 구해야 했다. 위의 그림을 보면 30, 24에서 학교에서 기본것으로 배운 토대로 최대공약수를 구한다면 먼저, 약수를 구해서 공통된 수가 6, 3, 2, 1이고 이중에서 가장 큰것이 6이다. 6이라는 숫자가 30, 24 최대 공약수이다 수가 30, 24라서 각 약수의 수가 적어서 구하는데 금방 걸리는데 100단위 또는 1000단위..
병합정렬 병합정렬은 정렬 알고리즘중 하나이다. 병합 정렬의 자세한 내용은 아래 사이트에 참조 하면 된다. 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번: ..
문제 요약 알고리즘 분류: 문자열 난이도: Bronze5 문제내용: 문자열길이를 출력한다. 사이트 주소: https://www.acmicpc.net/problem/2743 문제풀이 Python은 len 내장함수를 사용한다 Java는 length 메소드를 사용한다. 코드 Python print(len(input())) Java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new..
문제 요약 알고리즘 분류: 문자열, 재귀 난이도: Bronz2 문제내용: 첫째 줄 테스트 케이스 T와 T개 만큼 문자열을 입력한다. isPalindrome 함수 만들고 각 테스트 케이스마다 팰린드롬 여부와 재귀 호출 몇번 했는지 출력한다. 사이트 주소: https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 문제 풀이 isPalindrome 선언하고 파라미터 오른쪽 왼쪽 인덱스를 선언한다. 왼쪽 인덱스 수와 오른쪽 인덱스 수랑 같거나 큰경우 팰린드롬 참으로 한다. 왼쪽 인덱스 값과 오르쪽 인덱스 값이 다..
문제 요약 알고리즘 분류: 정수론, 수학 난이도: Bronz1 문제내용: 첫째 줄 N과 N의 개수 만큼 약수가 있다. 사이트 주소: https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 문제 풀이 최소 공배수로 접근 하면 안된다. → why? 최소 공배수는 밑의 수를 다 포함한 약수인데 2, 3, 5의 최소 공배수가 30인데. 30의 약수로는 2, 3, 5, 10, 15가 와야 하기 때문에 말이 안된다. 배열 또는 리스트로 선언한 다음 배열안의 최소 최대 곱하면 된다. CODE JAVA im..
문제 요약 알고리즘 분류: 수학 난이도: Bronz3 문제 내용: 0 ,0 입력 될때 까지 2개 정수를 입력한다. 첫 번째 숫자를 두번째 숫자에 나눠서 떨어지면 약수 두번째 숫자를 첫 번째 숫자에 나눠서 떨어지면 배수 그 외는 둘 다 아니다를 출력한다. 사이트 주소: https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 문제 풀이 while문으로 돌리고 두개의 입력값이 0, 0일때 반복 루프에서 빠져 나온다. 첫번째 값 하고 두반째깂에서 첫번째 값이 두번째 값을 나눠서 나머지가 0이면 약수,..
- Total
- Today
- Yesterday
- 문자열
- DP
- Programmerse
- Python
- level2
- 동적계획법
- 알고리즘
- 누적합
- 수학
- LeetCode
- 그래프
- DFS
- java
- 구현
- 넓이 우선 탐색
- 배열
- 백준
- BFS
- 자바
- JSCODE
- 동적 계획법
- 그리디
- 재귀호출
- 파이썬
- spring-boot
- 조합
- 백트레킹
- BaekJoon
- Greedy
- 이론
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |