일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 지혜를가진흑곰
- Java
- 알고리즘트레이닝
- 알고리즘공부
- 성분
- algorithmStudy
- 알고리즘 공부
- JavaScript
- 돈
- 프로그래머스 알고리즘 공부
- 자바스크립트
- 책을알려주는남자
- 서평
- 프로그래밍언어
- 독후감
- 백준알고리즘
- 자바
- algorithmTest
- 독서
- 경제
- 다독
- C
- 화장품
- 주식
- C++
- 채권
- 책알남
- 재테크
- algorithmtraining
- 투자
- Today
- Total
목록[Snow-ball]프로그래밍(컴퓨터) (332)
탁월함은 어떻게 나오는가?
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/uH5bu/btrsaSPdtJ0/6sPu4cPCfXlVjnHEZCoKy1/img.png)
삽입 정렬(Insertion Sort) 알고리즘 개념 삽입 정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. k번째 반복 후의 결과 배열은, 앞쪽 k + 1 항목이 정렬된 상태이다. 카드게임을 할때와 유사하게 생각하면 좋다. 새로운 카드를 뽑을 경우 정렬된 카드 사이에 올바른 자리에 삽입하는 원리이다. 삽입 정렬 알고리즘의 동작 원리 - 상입 정렬은 두 번째 값을 시작으로 첫 번째 값과 비교한다. 비교 후에 삽입할 위치를 지정한 후 값을 알맞는 자리에 삽입하여 정렬한다. - 즉, 두 번째 값을 첫 번째 값과, 세 번째 값은 두 번째, 첫 번째 값과 네 번쨰 값은 세 번째, 두 번째, 첫 번째 값과 비교한다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1VcdJ/btrr16AQlI9/Kn5HaChViaKyzTnwMHcEu0/img.png)
버블 정렬(Bubble Sort) 알고리즘의 개념 - 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 > 인접한 2개의 값을 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다. - 선택 정렬과 기본 개념이 유사하다. 버블 정렬 알고리즘의 동작 원리 - 버블 정렬은 첫 번째 값과 두 번째 값을, 두 번째 값과 세 번째 값을 ... 마지막( - 1)값과 마지막 값을 비교하여 자료를 정렬하는 알고리즘이다. - 처음 돌고나면 제일 큰값이 맨 뒤로 이동하게 되며, 2번째돌면 2번째로 큰값이 마지막 - 1 값 위치에 정렬되고 이를 N의 값만큼 전부 수행하게 된다. 이미지로 보는 동작 절차 1) 1번 값과 2번 값을 비교 후 1번 값이 크다면 1번 값과 2번 값의 자리를 바꾼다. 2) 2번 값과 3번 값을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bd4T6S/btrr9gIvjLA/XfPGOX3PdaMSKWapNMzb0K/img.png)
알고리즘 훈련중에 제일 먼저 하게되는 연습은 정렬(Sort)알고리즘 이라고 한다. 그 이유는 정렬 알고리즘 만큼 효율성의 차이를 극명하게 보여주는 것이 없다고 한다. 그래서 정렬알고리즘부터 공부를 시작해봐야겠다. 선택 정렬(Selection Sort) 알고리즘 개념 - 제자리 정렬(in-place sorting)의 알고리즘 중 한종류 > 입력 배열(정렬되지 않은 값들) 이외에 다른 추가 메모리를 요구하지 않는 정렬 방법 선택 정렬 알고리즘 동작 원리 - 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘 > 첫 번째 순서에는 첫 번째 위치에 가장 최솟값을 넣는다. > 두 번째 순서에는 두 번째 위치에 남은 값 중에서 최솟값을 넣는다. > 그렇게 N번까지 반복 후 N번..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tnuUO/btrrUo2dy8o/4HUS2PAgOubrrdYcCwa7X0/img.png)
문제 : 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 : 첫째 줄에 자연수 N(1
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kBLFX/btrrPYPhPSS/akBZwC2sfYK84d5epZa7cK/img.png)
문제 : 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qLnQo/btrrqY385ZS/twdKIVN5kVSInKP3N6YEgK/img.png)
OSI 7계층이란? OSI 7계층은 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것이다. 이는 ISO(국제 표준화기구)에서 개발한 모델이다. 통신이 일어나는 과정을 7단계로 크게 구분하여 한 눈에 들어올 수 있도록 정의했기 때문에 단계별로 파악하기 좋다. 컴퓨터 통신 구조의 모델과 앞으로 개발될 프로토콜의 표준적인 뼈대를 제공하기 위해 개발된 참조 모델이어서 OSI 7 계층 모델을 알면 네트워크 구성을 예측하고 이해할 수 있다. 네트워크에서 트래픽의 흐름을 알 수 있으며, 각 계층은 독립적이다. 독립적이기에 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도 이상이 생긴 단계만 찾아서 고칠 수 있다. OSI 7..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zmveH/btrq22FUdnJ/ZrpzTtrTkxR7ji5hksu8Mk/img.png)
문제 피보나치 수는 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번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 n번재 피보나치 수를 출력한다. 자바 풀이 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcKS87/btrqXwsKlk1/jF4gsDKsVmyzrQcMkIKhn0/img.png)
문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 1) return num * fact(num - 1); else if (num == 1) return 1; } int main() { int num; scanf("%d", &num); printf("%d", fact(num)); return 0; } Colored by Color Scripter cs 베타존 : 네이버쇼핑 스마트스토어 나를 꾸미다 - 인테리어소품 베타존 smartstore.naver.com