본문 바로가기

전체 글669

선택 정렬, 아이디어, 작동 원리, 자바 구현 코드 선택 정렬 비교 기반 알고리즘 중 O(n^2)의 성능을 보이며 가장 작은 값부터 정렬하는 선택 정렬에 대해 알아본다. 아이디어 주어진 데이터 중에서 가장 작은 값부터 차례대로 ‘선택’해서 나열하는 방식 -> n개의 데이터에 대해서 -> 데이터의 개수 만큼을 반복하면서 -> 정렬되지 않은 데이터 중에서 가장 작은 값을 선택 -> 선택된 값과 미정렬 데이터 부분의 첫 번째 원소와 교환 작동 원리 다음과 같은 데이터를 정렬하는 과정을 통해 실제 작동 원리를 살펴보자 . int[] arr1 = {6, 2, 7, 8, 3, 5, 4 }; 먼저 데이터의 개수 만큼 반복해줄 반복문을 선언한다. for (int i = 0; i < n - 1; i++) { 이후 정렬되지 않은 부분에 대해 최소 값을 찾는 부분이다. //.. 2023. 6. 10.
계수 정렬(countin/카운팅 정렬) 아이디어, 작동원리, 시간 복잡도, 자바 구현 코드 비교 기반의 정렬이 아닌 데이터 기반의 정렬 방식으로 계수 정렬과 기수 정렬이 있다. 데이터 기반의 정렬은 입력 데이터에 대한 메타 정보가 주어지는 정렬로, 비교 기반 정렬의 하한인 O(nlogn)보다 좋은 성능 O(n)을 낼 수 있는 정렬이다. 단, 데이터 분포에 대한 정보가 주어져야 한다. 예를 들어, 아래와 같은 데이터 입력이 주어진다고 할 때, 데이터의 분포는 4 ~ 9이다. int[] arr = {7, 5, 9, 8, 4, 5, 7, 5}; 이 글에서는 데이터 기반 정렬 중 하나인 계수 정렬에 대해 살펴본다. 계수 정렬 아이디어 아이디어는 2가지 부분으로 나뉜다. 1) 입력 값에서 데이터가 발생한 횟수를 구한다. 2) 발생한 횟수를 기반으로 누적 횟수를 구한다. 작동 원리 이 배열을 갖고 작동 .. 2023. 6. 10.
백준 1730 판화 (JAVA 자바 풀이) 백준 1730 판화 (JAVA 자바 풀이) 💡 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { private static final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws IOException { int N = Integer.parseInt(bufferedReader.readLine()); char[][] map = new char[N][N]; fo.. 2023. 6. 9.
백준 11068 회문인 수 (JAVA 자바 풀이) 백준 11068 회문인 수 (JAVA 자바 풀이) 💡 코드 구현 public class Main { private static final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws IOException { int testCases = Integer.parseInt(bufferedReader.readLine()); while (testCases-- > 0) { boolean palindromic = false; int number = Integer.parseInt(bufferedReader.readLine()); f.. 2023. 6. 9.
백준 11005 진법 변환 2 (JAVA 자바 풀이) 백준 11005 진법 변환 2 (JAVA 자바 풀이) 💡 코드 구현 public class Main { private static final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws IOException { StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine()); int n = Integer.parseInt(stringTokenizer.nextToken()); int m = Integer.parseInt(stringToke.. 2023. 6. 9.