![[java] 퀵 정렬(Quick Sort)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FplV5Z%2FbtsMVSUs7W7%2Fl84qqhdJ5X1FXubG5lXds1%2Fimg.png)
퀵 정렬은 피벗을 선정해 해당 값보다 작은 데이터와 큰 데이터로 분류하는 것을 반복해 정렬하는 알고리즘이다.피벗이 어떻게 선정되는지가 시간 복잡도에 많은 영향을 미치고, 평균적인 시간 복잡도는 O(nlogn)이다. 퀵 정렬 핵심 이론피벗을 중심으로 계속 데이터를 2개의 집합으로 나누면서 정렬하는 것이 퀵 정렬의 핵심이다.피벗보다 작으면 왼쪽, 크면 오른쪽으로 정렬하면 된다.① 데이터를 분할하는 pivot을 설정한다(위 그림의 경우 가장 오른쪽 끝을 pivot으로 설정).② pivot을 기준으로 다음 a~e 과정을 거쳐 데이터를 2개의 집합으로 분리한다.②-a: start가 가리키는 데이터가 pivot이 가리키는 데이터보다 작으면 start를 오른쪽으로 1칸 이동한다.②-b: end가 가리키는 데이터가 p..
![[java] 백준 1377번 문제(버블 소트)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpgZfu%2FbtsMQEJ5tmQ%2FTfAYwWiShnKaAQw5obC3kk%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/1377문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Boj_1377{ // 정렬 전 인덱스와 값을 저장하는 객체 static class Pair implements Comparable { int index; // index 저장 int value; // value 저장 // 생성자 Pair(int index, int value) { this...
![[java] 백준 16967번 문제(배열 복원하기)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKDJyZ%2FbtsMRkbWroh%2FxrBGrLNCwBReNrSYrj0S60%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/16967문제설명 소스코드import java.io.*;import java.util.StringTokenizer;public class Boj_16967{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // H, W, X, Y를 받아옴 StringT..
![[React] vite를 통해서 리액트 프로젝트 생성 및 실행](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqrxIQ%2FbtsMQdYurF4%2FrHsIj4UDn3ApQGot2IVvD0%2Fimg.png)
프로젝트 생성우선 node.js가 설치되어있어야 한다.필자의 node 버전은 22.14.0이다.맥에서 Homebrew를 통해서 22버전을 다운로드하는 명령어는 아래와 같다.brew install node@22 이후 프로젝트 폴더를 생성할 경로로 이동한다.cd cd /Users/... 아래의 명령어를 입력한다.npm create vite@latest 위와 같은 선택과정을 생략하려면 아래의 명령어를 입력한다.npm create vite@latest my-react-app -- --template reactnpm create: npm을 사용해 새 프로젝트를 생성하는 명령어vite@latest: vite의 최신 버전을 사용my-react-app:생성할 프로젝트 폴더명--: 이후의 옵션들을 vite 명령어에 전..
![[java] 백준 17298번 문제(오큰수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzqYwT%2FbtsMOQXoozj%2FtvMfoIZAWoIYQnvri8Ub81%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/17298 문제설명 소스코드import java.io.*;import java.util.Stack;import java.util.StringTokenizer;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // n과 수열을 받아옴..
![[java] 백준 1874번 문제(스택 수열)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUI9dK%2FbtsMMGOJXpB%2FPKLqDOpaMLYLQqicpt637K%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/1874 문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;public class Boj_1874 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); Stack..
![[Java] 백준 12891번 문제(DNA 비밀번호)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk4qQd%2FbtsMMc0396h%2FOeE1pZSL9lTWFQYsbm2crK%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/12891 문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Boj_12891{ static int[] inputACGT = new int[4]; // 입력 받은 부분문자열에 포함되어야 할 최소 개수 static int[] countACGT = new int[4]; // 구간에 포함된 부분문자열에 포함된 개수 public static void main(String[] args) throws IOExceptio..
![[Java] BigInteger 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvaZ5K%2FbtsMyk5Ob4e%2FxtBtTfrh3L6Sw3lOHQLibK%2Fimg.jpg)
BigInteger는 Java에서 기본적으로 제공하는 정수 타입(int, long)보다 더 큰 정수를 다룰 수 있도록 설계된 클래스이다.int는 32비트 정수(약 ±21억), long은 64비트 정수(약 ±9경)까지만 저장할 수 있지만, BigInteger는 이보다 훨씬 큰 정수(무한대)를 다룰 수 있다.생성문자열을 이용한 생성import java.math.BigInteger;public class Main { public static void main(String[] args) { BigInteger bigInt1 = new BigInteger("123456789012345678901234567890"); System.out.println(bigInt1); // 1234..