일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 전치사
- 파이썬
- 블록체인
- 영어
- dfs
- 다이나믹프로그래밍
- Hyperledger Fabric
- 영어기초
- 영어 회화
- 라이브 아카데미
- 알고리즘
- 정렬
- 영어회와
- BFS
- 백트래킹
- used to
- Backtracking Algorithm
- 관계절
- 백트래킹 알고리즘
- N-Queens
- 라이브아카데미
- 백준
- 영어회화
- python
- 회화기초
- 완전탐색
- 일상회화
- IF
- baekjoon
- 회화
- Today
- Total
목록Algorithm (55)
내 맴
- Quick Sort 설명 : pivot을 설정하고 partition을 수행하여 pivot값을 고정시킨다. 1. pivot을 설정하기 2. partition과정 수행 → pivot이 고정됨 3. pivot보다 큰 부분과 작은 부분 각각 quick sort 다시 시행 - Partition 과정 1. i= 맨처음 수 , j= 맨 마지막 수 2. (1) i가 하나씩 커지면서 i>pivot이 되면 멈춤 (2) j가 하나씩 작아지면서 j
문제 ) https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 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 풀이 ) F(0) =0 , F(1) =1 F(n)= F(n-1) + F(n-2) 피보나치 수열을..
문제 ) https://www.acmicpc.net/problem/2798 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버젼의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 www.acmicpc.net 풀이 ) 브루트 포스 방법을 이용해서 풀어보았다. 뽑을 카드 3개를 돌아가면서 다 뽑아 보면서 뽑은 3개의 카드 합이 전 값보다 ..
문제 ) https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 ) N! = N x (N-1) x (N-2) x ........ x 2 x 1 ✔ for문으로 코딩할 수도 있고 재귀함수로 코딩할 수도 있다. - python code 1 ( Recursive ) - python code 2 ( Iterative )
- Bubble Sort 설명 : 인접한 두 원소 검사하여 정렬 list의 원소 갯수: n개 일때 1. (n-1)번 회전하면서 제일 큰 값을 고정시킨다. 1. 첫번째 원소와 두번째 원소 비교 → 작은 수가 앞으로 오게 exchange 2. 두번째 원소와 세번째 원소 비교 → 작은 수가 앞으로 오게 exchange ..... 고정된 원소까지 반복 - python code
문제 ) https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 풀이 ) 전에 풀었던 ' No. 1978: 소수찾기' 문제의 코드를 참조해서 코드를 작성하였다 - python code
- Merge Sort 설명 ✔ divide & conquer방법을 이용함 ✔ n개의숫자들을 반으로 나눠 2개의 부분으로 분할하고 → 각각의 부분을 재귀적으로 정렬한 후 → 2개의 정렬된 부분을 merge하여 정렬 - Mergesort (1) 1개의 정렬되지 않은 배열을 2개의 배열로 분할하는것을 반복 → 배열의 원소 갯수가 1개가 될때까지 반복 (2) 양쪽의 배열의 크기가 둘 다 1개가 되면 merge시켜준다 ✔ 입력 크기가 n=6 , list A= [ 9, 20, 5, 15, 3, 11 ]인 경우 초록색 화살표는 divide하는 과정, 노란색 화살표는 merge하는 과정을 의미한다. - Merge ✔ 두개의 정렬된 배열을 하나의 정렬된 배열로 합치는 function ✔ A=[1,,,,h] 와 B=[1..
문제 ) https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 풀이 ) ✔ 소수: 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수 예를 들어, 2, 3, 5, 7, 11,13,,,,,,등이 소수가 된다 주어진 수 N이 소수인지 알아보기 위해, 2~(N-1)까지 나눠 떨어지게 하는 수가 있는지 약수들을 다 검사하게끔 코드를 작성했다 - Python Code