일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jupyter
- clone
- vscode
- cmd
- 클론
- github clone
- visualstudio code
- 파이썬
- github token
- php
- MySQL
- console창
- import data
- database
- run sql script
- error
- PHPStorm
- 오류
- DataGrip
- 데이터베이스
- localhost
- Python
- 단축키
- 따옴표 삭제
- error 해결
- 에러
- OrCAD 다운로드
- 깃 토큰
- Visual Studio Code
- csv
- Today
- Total
목록알고리즘 공부 : 24.01.18~/1. 알고리즘 기초 정렬 (12)
개발 노트
[줄 이동 단축키] 줄 이동 : alt 누르고 화살표 줄 복사 후 이동 : ctrl + alt 누르고 화살표 [디버그하는법] : 오른쪽 위 -> 디버그창 엶, 디버그 토글 선택, 디버그 실행 [메소드(함수) 선언] public static 리턴타입(자료형or void) 메소드명() { return (void면 return 없음) } 메소드는 main문 밖에 선언한다. [while 문] while은 조건식이 true일 경우 하단 실행문을 실행. false이면 실행문을 실행하지 않고 종료. [ArrayIndexOutOfBoundsException] 배열의 크기가 맞지 않는 경우 생기는 예외. 배열의 크기가 작은 줄 알고 오류부분이 어딘지 계속 찾았는데, 배열의 기존 크기가 클 때도 생기는 오류였다. 백준 문..
1. 선택 정렬 - 개념 : 가장 작은 걸 선택해서 가장 앞으로 보낸다. - 코드 내용 : 모든 자리의 최소값을 스캔해서 가장 앞에 있는 숫자와 위치 바꿈. - 시간복잡도 : O(N*N) 2. 버블 정렬 - 개념 : 당장 옆에 있는 것과 비교 - 코드 내용 : 당장 옆에 있는 것과 서로 비교해서 순서에 맞게 서로 위치 바꿈. - 시간복잡도 : O(N*N), O(N*N)인 정렬 중 가장 느림 3. 삽입 정렬 - 개념 : 앞 숫자들이 정렬돼 있다고 가정하고 다음 숫자를 사이에 삽입. - 코드 내용 : 정렬돼 있는 숫자를 기준으로 바로 오른쪽에 있는 숫자의 크기와 비교하여 (정렬숫자)>(정렬안된 오른쪽숫자) 이면 둘의 위치를 바꾼다. 정렬될 때 까지 반복한다. - 시간복잡도 : O(N*N), O(N*N)인 정..
백준알고리즘에서 컴파일 에러가 하단과 같이 난 경우. class HelloWorld is public, should be declared in a file named HelloWorld.java 해결 방법 : 백준 알고리즘에서는 JAVA를 제출할 때 class이름을 Main으로 설정을 해야 한다.

https://chrome.google.com/webstore/detail/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8Cbaekjoonhub/ccammcjdkpgjmcpijpahlehmapgmphmk/related 백준허브(BaekjoonHub) Automatically integrate your BOJ submissions to GitHub chrome.google.com 상단 링크에서 확장프로그램 설치 > Authenticate > 깃허브 로그인 Create a new Private Repository : 새로운 이름의 레포지토리를 생성 Link an Existing Repository : 이미 존재하는 레포지토리와 연결 Repository 생성 완료 이제 확장프로그램을 설치한 환..

백준 사이트 https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net - 처음이면 이 두 카테고리 중 풀기! 문제 > 단계별로 풀어보기 문제 > 알고리즘 분류 - 1초에 1억번 연산 가능하다고 생각하면 된다. - 웬만한 알고리즘 문제를 풀 때 배열은 +1의 크기로 해놓는 것이 좋다. 만약에 N이 1000이라면 하단처럼 배열의 크기는 1001로 해놓는다. - 소스코드 비공개, 언어는 c++ 11로 설정. - 백준 내 프로필 : https://solved.ac/profile/1010hy --- 1. 단순정렬 : https://www.acmicpc.net..

- 굉장히 빠른 알고리즘. - 분할 정복 알고리즘. - 특정한 배열이 있을 때 나누어 계산. - 평균 속도는 O(N * logN) *logN은 상수에 가깝기 때문에 아주 작은 수이다. 예를 들어 2의 20제곱은 1000,000이므로 log2N에서 N이 1000,000일 때 log2N의 값은 20이다. - 특정한 값을 긱준으로 큰 숫자와 작은 숫자를 나눈다. 배열을 두 집합으로 나눈다. - 특정한 기준 값(피벗)을 설정하고 왼쪽과 오른쪽을 나눈다. [정렬 예시] 1. 보통 가장 앞에 있는 값을 피벗 값으로 선택한다. -> 3이 피벗 값 2. 왼쪽에서 오른쪽으로 이동할 땐 피벗값보다 큰 값을 찾는다. -> 7 오른쪽에서 왼쪽으로 스캔할 땐 피벗값보다 작은 값을 찾는다. -> 2 그리고 그 둘을 바꾼다. ->..

ㆍ각 숫자를 적절한 위치에 삽입하는 방법. ㆍ버블정렬이나 선택정렬같은 시간복잡도 O(n^2) 방법들중엔 제일 빠르다. ㆍ 앞에 있는 숫자들이 이미 정렬돼있다고 가정한다. ㆍ 앞에 있는 숫자들중에 들어갈 위치를 생각해서 들어가는 방법이다. 앞에 있는 숫자가 나보다 더 작으면 위치바꿈을 멈춘다. 최악의 경우 연산 속도는 O(n^2)이다.(반복문이 두 번 들어가있다.) 거의 정렬이 돼있는 경우에는 속도가 아주 빠르기 때문에 삽입 정렬이 가장 효율적이다. 자세한 수행 과정 : 만약 [1, 10, 5, 8, 7, 6, 4, 3, 2, 9] 의 숫자들을 오름차순으로 정렬할 때 삽입 정렬의 순서는 1. 앞에 있는 숫자들이 정렬되어 있다고 가정한다. 1은 앞으로 갈 자리가 없으니 10부터 보면 _ 1 _ 10 으로 1..

ㆍ가장 효율성이 떨어지는 알고리즘. ㆍ당장 옆에 있는 것과 비교해서 둘끼리만 이동. ㆍ 수행 시간 : n x (n+1) / 2 ㆍ선택정렬처럼 시간복잡도는 O(N^2)으로 동일하지만, 자리를 바꾸는 연산이 계속 이루어지기 때문에 선택정렬보다도 훨씬 느리다. 정렬 알고리즘중에 가장 느리다. #include int main(void) { int i, j, temp; int array[10] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 }; for (i = 0; i j다음 위치 라면 서로 위치 바꿔줌 if (array[j] > array[j..

ㆍ비효율적인 정렬 알고리즘 ㆍ예를 들어 1 10 5 8 7 6 4 3 2 9 가 있을 때 이를 선택 정렬로 정렬하는 경우 1) 처음부터 끝까지 10개를 살펴본 후 -> 가장 작은 걸 앞에 둠 2) 또 두번째부터 끝까지 9개를 살펴본 후 -> 가장 작은 숫자(2를) 가장 앞(두번째자리)의 숫자와 위치를 바꿈 즉 "가장 작은 걸 선택해서 가장 앞으로 보낸다" #include int main(void) { int i, j, min, index, temp; int array[10] = {1, 10, 5, 8, 7, 6, 4, 3, 2, 9}; for (i=0; i