본문 바로가기
728x90

Algorithm/Java14

[Java] 기본형 변수와 참조형 변수 보호되어 있는 글 입니다. 2023. 1. 29.
선택 정렬 과 시간 복잡도 선택 정렬 알고리즘은 가장 원시적인 방법이다. 데이터가 무작위로 여러 개 있다고 가정하자. 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복한다. 다음은 선택 정렬을 사용하여 데이터를 오름차순으로 정렬한 코드다. import java.util.Arrays; public class Main { public static void main(String[] args) { int []arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8}; int Index = 0; //가장 적은 원소의 인덱스 for(int i = 0; i < arr.length; i++){ for(int j = i + 1; j < arr.length;.. 2023. 1. 26.
자바 [JAVA] - 삽입 정렬(Insertion Sort) Insertion Sort [삽입 정렬] 삽입 정렬은 현재 비교하고자 하는 target(타겟)과 그 이전의 원소들과 비교하며 자리를 교환(swap)하는 정렬 방법이다. 말로만 설명하기에는 어려울 수 있으나 그림으로 보면 이해하기 쉬우니 일단 삽입 정렬에 대한 특징만 짚고 넘어가보자. 삽입 정렬은 데이터를 '비교'하면서 찾기 때문에 '비교 정렬'이며 정렬의 대상이 되는 데이터 외에 추가적인 공간을 필요로 하지 않기 때문에 '제자리 정렬(in-place sort)'이기도 하다. 정확히는 데이터를 서로 교환하는 과정(swap)에서 임시 변수를 필요로 하나, 이는 충분히 무시할 만큼 적은 양이기 때문에 제자리 정렬로 보는 것이다. 이는 선택정렬과도 같은 부분이다. 정렬 방법 삽입 정렬의 경우 원리 자체는 간단하.. 2023. 1. 23.
백준 2751번 수 정렬하기2 1. 문제 설명 문제 링크 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. . 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 2. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; class Main { public.. 2023. 1. 23.
JAVA Basic Dictionary & Map 클래스 JAVA Basic : Dictionary & Map 클래스 Map 클래스와 일반 배열과의 차이점 패키지 java.util java.lang 클래스 정의 Map ht = new HashMap(); String[] array = new String[n] ← n자리수의 배열 정의 크기 크기가 정해져 있지 않다. 확장성 용이 한번 배열클래스를 정의하면 크기 고정. 순서 순서가 없다. 순서가 있다. 입출력형태 Key-Value 형태로 입출력을 한다. 배열의 Index 숫자를 지정해서 입출력을 한다. 반복출력 시 순서없이 뒤죽박죽 출력된다.Key와 Value는 한 쌍이기때문에 Key&Value는 안섞인다. 배열 Index번호대로 차례대로 출력된다. Map의 주요 메소드 Map ht = new HashMap(); .. 2023. 1. 17.
백준 11726번 2 * n 타일링 1. 문제 설명 문제 링크 ×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 2. 코드 import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n + 2]; dp[1] = 1; dp[2] = 2; for (in.. 2023. 1. 13.
728x90