정렬 알고리즘 중 가장 빠른 성능을 가짐 시간 복잡도 : 평균 : O( n log(n) ) 최악의 경우 : O(n^2) 피벗 : 배열의 정 중앙위치의 값 분할 정복 방법을 아용하여 배열을 정렬하는 방법으로 피벗을 중심으로 배열을 둘로 나누어 값을 비교하여 정렬 1. 리스트 가운데서 하나의 원소를 고른다. 이렇게 고른 원소를 피벗이라고 한다. 2. 피벗 앞에는 피벗보다 값이 작은 모든 원소들이 오고, 피벗 뒤에는 피벗보다 값이 큰 모든 원소들이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. 이렇게 리스트를 둘로 나누는 것을 분할이라고 한다. 분할을 마친 뒤에 피벗은 더 이상 움직이지 않는다. 3. 분할된 두 개의 작은 리스트에 대해 재귀(Recursion)적으로 이 과정을 반복한다. 재귀는 리스트의 크기가..
힙: 부모의 값이 자식의 값보다 항상크다. 힙을 사용하여 정령하는 알고리즘으로 완전이진트리 형대의 알고리즘 시간 복잡도 : n log(n) n개의 노드에 대한 완전 이진 트리를 구성한다. 이때 루트 노드부터 부모노드, 왼쪽 자식노드, 오른쪽 자식노드 순으로 구성한다. 최대 힙을 구성한다. 최대 힙이란 부모노드가 자식노드보다 큰 트리를 말하는데, 단말 노드를 자식노드로 가진 부모노드부터 구성하며 아래부터 루트까지 올라오며 순차적으로 만들어 갈 수 있다. 가장 큰 수(루트에 위치)를 가장 작은 수와 교환한다. 2와 3을 반복한다.
방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다. 손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다. 다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다. 예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다. 여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째 손님은 101 호, 두 번..
처음 이 문제를 풀면서 다음과 같은 수식을 만들었습니다. day++; meter=0; meter = meter +(A-B); 간단한 수식을 만들어 실행한때 정상적으로 문제의 답이 나왔으나 문제 제출하면 "시간 초과"가 뜨더라고요. import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int V = sc.nextInt(); int meter =0; int day =0; while(true) { day++; meter= meter+A; if(meter
백준2941 문제 스크립 입니다. 랜덤 글자를 입력받아 변경에 필요한 글자를 받아 크로아티아로 변환하고 변환된 크로아티아 글자 수를 계산하는 문제 저는 문제 처리 방향을 갯수를 확인만 하면되기 때문에 변환표의 글자를 예외적으로 다른 글자로 바꾸어 갯수를 확인하는 방향으로 했습니다. 예) ddz=z= -> daa 3글자 ljes=njak -> aeaaak 6글자 자바 명령어 String.replace(old, new) 를 사용하면 되겠습니다. import java.util.Scanner; public class Q{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str=sc.next(); //글 받고 ..
제목 그대로 적어도 조건문은 만들어야 게임을 만들어낼 수 있습니다. 과거 80년대? 최초의 게임은 지금처럼 그래픽이나 그림으로 보여지는 게임이 아니었습니다. cmd를 활용한 텍스트 형식의 게임이었는데요. 유저에게 선택지를 주어 선택하는 게임이었습니다. 요즘 친구들에게는 재미없는 게임 이겠지만 그 당시에는 없어서 못할 정도였다고 합니다. 요즘도 텍스트 형식의 게임이 존재합니다. 턴제게임 파이널 판타지나 미소녀연애시뮬레이션등이 있습니다. 오늘 포스팅은 조건문을 만들고 실행하는 여러가지 방법을 알려드리겠습니다. 조건문의 종류는 3가지 if / else / else if 가 있습니다. if(만일 ~라면)if조건문은 사용자가 특정한 조건을 만족했을때 조건문에 대한 결과가 출력되는 형식입니다.만일 조건을 만족을 못..
이번 포스팅은 변수에 값을 입력하는 또 다른 방법을 설명드리겠습니다. 코드를 만들면서 매번 달라지는 값을 바꾸려 프로그램을 바꾸는 번거로운 작업을 이번시간을 통해 아주 쉽게 만드는 법을 알려드리겠습니다. 먼저 기본 코드를 입력해보겠습니다. #define _CRT_SECURE_NO_WARNINGS#include int main(){int num1;int num2;int num3; printf("정수 세 개를 입력하세요: "); scanf("%d %d %d",&num1, &num2, &num3);printf("%d\n", num1);printf("%d\n", num2);printf("%d\n", num3); return 0;} 위 코드에서 보아야 할 것은 scanf 연산자 입니다.사용자가 코드 내에서 직접 ..
저번 시간에 정수 자료형에 대해서 아주 복잡하게 알려드렸습니다. 이번 실수 자료형은 정말 간단하게 설명을 드리겠습니다. "간단한 설명 = 귀찬아서 생략하겠다." 는 아닙니다. 그럼 오늘의 포스팅을 시작해 보겠습니다. 우선 실수 자료형 코드와 정수 자료형 코드의 차이를 보도록 하겠습니다. #include int main() {int num1 = 1.00000;float num2 = 1.00000f; printf("%d\n %f\n", num1, num2); return 0;} 위 코드의 결과를 확인해보셨나요? 변수 num1의 값을 분명 1.00000 까지 입력하여 소수점 자리 까지 결과가 출력되록 했지만 출력 결과는 1 입니다. num1 변수는 정수 자료형으로 값을 저장하였기 때문입니다 정수는 소수점까지 ..
오늘의 포스팅 주제!!! 지난 시간에 설명드린 자료형에 대해 보충 설명을 포스팅합니다. 자료형은 정수 자료형 과 실수 자료형 문자 자료형 세 가지가 있습니다. 오늘은 정수 자료형에 대해서 이야기 해보겠습니다. 정수 자료형의 종류는 다양하게 있지만 크게 구분하면 int 와 char 으로 구분이 가능합니다. 그리고 부호와 크기를 조합하여 원하는 크기와 범위를 선택 할 수 있습니다. 부호는 여러분이 아는 플러스(+) 와 마이너스(-) 입니다. 여기서는 보호가 있는 정수와 부호가 없는 정수로 구분하는데 당연히 부호가 없는정수가 0부터 시작한는 정수이겠죠? 그러면 반대로 부호가 있는 정수는 플러스와 마이너스를 모두 가지고있는 정수가 됩니다. 자료형의 부호signed : 부호가 있는 정수로 표시합니다. 보통 sin..
- Total
- Today
- Yesterday
- ajax
- spring-cloud
- 백준
- springboot
- 면접
- docker
- 스프링부트
- 자격증
- 릿코드
- interview
- OOP
- java
- CS
- 그래프
- Spring
- Matlab
- kakao
- 스프링
- 알고리즘
- Solid
- 프로그래머스
- nginx
- security
- Algorithm
- 매트랩
- 디자인패턴
- C언어
- 자바
- JPA
- 수학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |