BOJ
-
문제링크 : https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 예전에 풀었던 요세푸스와 같은내용이었다. 다른점은 시간제한뿐..? 분명 풀었던 문제인데 처음 풀듯이 다시풀게되었다........... 기억력 참 https://infinitt.tistory.com/213 백준 (boj) 파이썬 - 1158 요세푸스 문제 문제 링크 : https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acm..
백준(boj) 파이썬 - 11866 번 : 요세푸스 문제 0문제링크 : https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 예전에 풀었던 요세푸스와 같은내용이었다. 다른점은 시간제한뿐..? 분명 풀었던 문제인데 처음 풀듯이 다시풀게되었다........... 기억력 참 https://infinitt.tistory.com/213 백준 (boj) 파이썬 - 1158 요세푸스 문제 문제 링크 : https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acm..
2020.05.03 -
문제 링크 : https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 문제 분류 : 다이나믹 프로그래밍 https://infinitt.tistory.com/246 알고리즘 - 다이나믹 프로그래밍 (Dynamic Programming) 다이나믹 프로그래밍 (Dynamic Programming) : DP 개념 : 문제를 더 작은 단위로 쪼개어 해결하는 알고리즘. (분할 정복 알고리즘과 비슷하다. 차이점은 바로 아랫줄.) 핵심은, 그 작은 단위의 문제들이 반복..
백준 (boj) 파이썬 - 16194번 : 카드 구매하기 2 (DP)문제 링크 : https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 문제 분류 : 다이나믹 프로그래밍 https://infinitt.tistory.com/246 알고리즘 - 다이나믹 프로그래밍 (Dynamic Programming) 다이나믹 프로그래밍 (Dynamic Programming) : DP 개념 : 문제를 더 작은 단위로 쪼개어 해결하는 알고리즘. (분할 정복 알고리즘과 비슷하다. 차이점은 바로 아랫줄.) 핵심은, 그 작은 단위의 문제들이 반복..
2020.04.24 -
다이나믹 프로그래밍 (Dynamic Programming) : DP 개념 : 문제를 더 작은 단위로 쪼개어 해결하는 알고리즘. (분할 정복 알고리즘과 비슷하다. 차이점은 바로 아랫줄.) 핵심은, 그 작은 단위의 문제들이 반복해서 일어나기 때문에, 그값들을 저장해놓는 식으로 해결해나가는 알고리즘 (다이나믹이라는 이름에는 아무 뜻도 없다고 한다.) *다이나믹 프로그래밍을 사용하기 위한 조건 1. 부분 문제들이 겹치는가 (반복 되는가) ex ) 피보나치 수 : N번째 항(큰 문제) = N-1번째 항(작은 문제) + N-2 번째 항(작은 문제) 피보나치의 특성을 잘 살펴보면 Fibo(10)을 구할때는 Fibo(9)+Fibo(8)...........Fibo(1) 까지 모두 필요합니다. 이때 메모이제이션을 통해 배..
알고리즘 - 다이나믹 프로그래밍 (Dynamic Programming)다이나믹 프로그래밍 (Dynamic Programming) : DP 개념 : 문제를 더 작은 단위로 쪼개어 해결하는 알고리즘. (분할 정복 알고리즘과 비슷하다. 차이점은 바로 아랫줄.) 핵심은, 그 작은 단위의 문제들이 반복해서 일어나기 때문에, 그값들을 저장해놓는 식으로 해결해나가는 알고리즘 (다이나믹이라는 이름에는 아무 뜻도 없다고 한다.) *다이나믹 프로그래밍을 사용하기 위한 조건 1. 부분 문제들이 겹치는가 (반복 되는가) ex ) 피보나치 수 : N번째 항(큰 문제) = N-1번째 항(작은 문제) + N-2 번째 항(작은 문제) 피보나치의 특성을 잘 살펴보면 Fibo(10)을 구할때는 Fibo(9)+Fibo(8)...........Fibo(1) 까지 모두 필요합니다. 이때 메모이제이션을 통해 배..
2020.04.23 -
문제 링크 : https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 www.acmicpc.net 에라토스테네스 개념 : https://infinitt.tistory.com/232 알고리즘 (1) - 수학 : ..
백준 (boj) 파이썬 - 2960번 : 에라토스테네스의 체문제 링크 : https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 www.acmicpc.net 에라토스테네스 개념 : https://infinitt.tistory.com/232 알고리즘 (1) - 수학 : ..
2020.04.18 -
문제 링크 : https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 에라토스테네스의 체를 이용하면 된다. https://infinitt.tistory.com/232 알고리즘 (1) - 수학 : 유클리드 호제법 , 에라토스테네스의 체 (나머지 연산, 최대 공약수, 최소공배수, 소수) codepuls의 sw역량테스트_기초파트를 듣고 정리한 내용입니다. 수학과 관련한 기초문제에는 크게 3가지 분류로 나뉘어진다. 나머지 연산 최대 공약수, 최소 공배수 소수 (prime number) 1...
백준 (boj) 파이썬 - 1929 : 소수 구하기문제 링크 : https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 에라토스테네스의 체를 이용하면 된다. https://infinitt.tistory.com/232 알고리즘 (1) - 수학 : 유클리드 호제법 , 에라토스테네스의 체 (나머지 연산, 최대 공약수, 최소공배수, 소수) codepuls의 sw역량테스트_기초파트를 듣고 정리한 내용입니다. 수학과 관련한 기초문제에는 크게 3가지 분류로 나뉘어진다. 나머지 연산 최대 공약수, 최소 공배수 소수 (prime number) 1...
2020.04.18 -
수학과 관련한 기초문제에는 크게 3가지 분류로 나뉘어진다. 나머지 연산 최대 공약수, 최소 공배수 소수 (prime number) 1. 나머지 연산 (Modular Arithmetic) Python 으로 문제를 푼다면 상관없겠지만, C++ , Java와 같은 경우에는 표현할 수 있는 정수의 길이가 제한되어있다. 가장 긴 정수 표현방법인 longlong으로 했을때 8byte이므로.... 따라서 문제에서는 이를 n으로 나눈 나머지를 구하라 와 같은 방식으로 출제하게 된다. 흔히 %를 사용하는 modular. * 이러한 유형의 문제를 풀때 알아두면 좋은 공식 덧셈 : (A+B)%C = (A%C + B%C)%C 곱셈 : (A*B)%C = (A%C * B%C)%C 뺄셈 : (A-B)%C = ((A%C)-(B%C)..
알고리즘 (1) - 수학 : 유클리드 호제법 , 에라토스테네스의 체 (나머지 연산, 최대 공약수, 최소공배수, 소수)수학과 관련한 기초문제에는 크게 3가지 분류로 나뉘어진다. 나머지 연산 최대 공약수, 최소 공배수 소수 (prime number) 1. 나머지 연산 (Modular Arithmetic) Python 으로 문제를 푼다면 상관없겠지만, C++ , Java와 같은 경우에는 표현할 수 있는 정수의 길이가 제한되어있다. 가장 긴 정수 표현방법인 longlong으로 했을때 8byte이므로.... 따라서 문제에서는 이를 n으로 나눈 나머지를 구하라 와 같은 방식으로 출제하게 된다. 흔히 %를 사용하는 modular. * 이러한 유형의 문제를 풀때 알아두면 좋은 공식 덧셈 : (A+B)%C = (A%C + B%C)%C 곱셈 : (A*B)%C = (A%C * B%C)%C 뺄셈 : (A-B)%C = ((A%C)-(B%C)..
2020.04.17