Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java

  1. 자바(Java)로 배우는 이진 삽입 정렬: 개념과 동작 원리, 예제 코드 총정리

    이진 삽입 정렬(Binary Insertion Sort)은 전통적인 삽입 정렬에 이진 탐색(Binary Search)을 결합해 성능을 개선한 정렬 알고리즘입니다. 매 반복마다 현재 인덱스의 요소를 삽입할 올바른 위치를 이진 탐색으로 먼저 찾아내고, 그 위치의 기존 요소들을 한 칸씩 오른쪽으로 이동시킨 뒤 해당 요소를 제자리에 배치합니다. 일반적인 삽입 정렬은 삽입 위치를 찾기 위해 최악의 경우 앞쪽의 모든 요소와 하나씩 비교해야 합니다. 반면 이진 삽입 정렬은 이미 정렬된 구간에서 이진 탐색을 활용해 비교 횟수를 로그(log) 수준

  2. 자바(Java)로 구현하는 카운팅 정렬(Counting Sort) 프로그램

    카운팅 정렬(Counting Sort)이란? 카운팅 정렬은 서로 다른 키 값을 가지는 객체들의 개수를 세어 정렬하는 비교 기반이 아닌 정렬 알고리즘입니다. 각 값의 등장 횟수를 미리 계산해 둔 뒤, 그 정보를 바탕으로 요소들을 올바른 위치에 배치하기 때문에 값의 범위가 제한적일 때 매우 효율적으로 동작합니다. 참고 − 아래 코드는 음수가 포함된 배열에도 그대로 사용할 수 있습니다. 예제 코드 import java.util.*; public class Demo{ static void count_sort(int[] arr){

  3. 자바(Java)로 구현하는 콤 정렬(Comb Sort) 프로그램

    콤 정렬(Comb Sort)이란?콤 정렬(Comb Sort)은 버블 정렬(Bubble Sort)을 개선한 정렬 알고리즘입니다. 리스트 끝부분에 몰려 있는 작은 값들을 빠르게 앞쪽으로 이동시키고, 배열 내의 역전(inversion) 요소를 하나씩 해소해 나가며 정렬을 완성합니다.버블 정렬이 항상 인접한 두 요소만 비교하는 것과 달리, 콤 정렬은 일정 간격(gap)을 두고 요소를 비교·교환하기 때문에 거북이(turtle)라고 불리는 작은 값들이 배열 끝에 남아 성능을 저하시키는 문제를 효과적으로 해결합니다.예제 코드다음은 자바로 작성한

  4. 자바(Java)로 구현하는 아나그램 부분 문자열 검색 프로그램

    아나그램(Anagram)은 동일한 문자들을 다른 순서로 재배치하여 만든 문자열을 의미합니다. 예를 들어 listen과 silent처럼 구성 문자는 같지만 순서만 다른 경우를 말합니다. 아나그램 부분 문자열 검색은 주어진 텍스트 안에서 특정 패턴의 아나그램에 해당하는 부분 문자열이 어느 위치에 있는지 찾아내는 알고리즘입니다. 다음은 자바(Java)로 구현한 아나그램 부분 문자열 검색 예제입니다. 예제 코드 public class Demo{ static final int max_val = 256; static boole

  5. 재귀 호출로 구현하는 Java 이진 검색 프로그램

    이진 검색(Binary Search)은 정렬된 데이터에서 원하는 값을 빠르게 찾는 대표적인 탐색 알고리즘입니다. 아래 예제는 Java에서 재귀(Recursion) 방식을 활용해 이진 검색을 구현한 프로그램입니다.예제 코드public class Demo{    int rec_bin_search(int my_arr[], int left, int right, int x){       if (right >= left){          int m

  6. 자바로 구현하는 비토닉 정렬(Bitonic Sort) 완벽 가이드

    비토닉 정렬(Bitonic Sort)은 정렬할 데이터에 따라 비교 순서가 달라지는 것이 아니라, 미리 정의된 시퀀스(비토닉 시퀀스)를 기준으로 비교가 이루어지는 정렬 알고리즘입니다. 여기서 비토닉 시퀀스란 먼저 증가하다가 이후 감소하는(또는 그 반대의) 형태를 가진 수열을 의미합니다.이러한 특성 덕분에 비토닉 정렬은 비교 경로가 고정되어 있어 병렬 처리 환경에서 특히 효율적이며, GPU 연산이나 하드웨어 가속이 필요한 분야에서 널리 활용됩니다. 아래에서 자바로 구현한 비토닉 정렬 예제를 살펴보겠습니다.예제 코드public class

  7. 두 숫자의 공약수 개수를 구하는 Java 프로그램

    이 글에서는 Java를 사용하여 두 숫자의 공약수 개수를 구하는 방법을 예제 코드와 함께 살펴봅니다. 핵심 아이디어는 유클리드 호제법으로 두 수의 최대공약수(GCD)를 먼저 구한 뒤, 해당 GCD의 약수 개수를 세는 것입니다. 두 수의 모든 공약수는 결국 최대공약수의 약수이기 때문에 이 방식은 매우 효율적입니다.예제 코드public class Demo{   static int find_gcd(int val_1, int val_2){      if (val_1 == 0)  &nbs

  8. Java로 복리 이자 계산하기: Math.pow()를 활용한 코드 예제와 상세 설명

    복리 이자란? 복리(Compound Interest)는 이자가 원금에 합산되고, 그 합산된 금액에 다시 이자가 붙는 방식을 말합니다. 단순 이자와 달리 시간이 지날수록 이자가 누적으로 증가하기 때문에 장기 투자나 대출 계산에서 반드시 이해해야 할 개념입니다. 이번 글에서는 Java를 이용해 복리 이자를 계산하는 프로그램을 작성하고, 그 동작 원리까지 자세히 살펴보겠습니다. 복리 계산 공식 복리 이자는 다음과 같은 공식으로 계산할 수 있습니다. 복리 금액 = 원금 × (1 + 이율 ÷ 100) ^ 기간 원금(P): 처음 투자하거나

  9. 처음 n개 자연수의 세제곱 합을 구하는 Java 프로그램

    이 글에서는 처음 n개 자연수의 세제곱 합을 계산하는 Java 코드를 소개합니다.예제import java.util.*; import java.lang.*; public class Demo{ public static int first_n_nat_no(int val){ int ini_sum = 0; for (int x=1; x<=val; x++) ini_sum += x*x*x; return ini_sum; } public static void main(

  10. Java에서 % 형식 지정자를 활용한 문자열 포매팅 방법

    Java에서는 String.format() 메서드와 % 형식 지정자를 사용하여 문자열을 손쉽게 포매팅할 수 있습니다. 문자열은 %s, 실수는 %f와 같은 지정자를 통해 원하는 형식으로 출력할 수 있으며, 소수점 자릿수도 자유롭게 조절할 수 있습니다.예제 코드public class Demo {    public static void main(String args[]){       String my_str = sample.;       String concat_S

  11. 숫자의 가장 큰 소인수를 구하는 Java 프로그램

    다음은 주어진 숫자의 가장 큰 소인수(largest prime factor)를 구하는 Java 코드입니다. 예제 import java.io.*; import java.util.*; public class Demo{ static long maxPrimeFactors( long val){ long max_prime = -1; while (val % 2 == 0) { max_prime = 2; val >>= 1; } f

  12. 원기둥의 둘레를 계산하는 자바(Java) 프로그램

    원기둥(cylinder)의 둘레란 단면(원)의 둘레 길이를 의미하며, 다음 공식으로 계산할 수 있습니다.둘레 = 2 × (지름 + 높이)아래는 이 공식을 활용해 원기둥의 둘레를 구하는 자바 코드입니다.예제 코드import java.io.*; public class Demo{ static int find_peri(int dia, int ht){ return 2*(dia + ht); } public static void main(String[] args){ int dia = 7;

  13. Java로 포물선의 꼭짓점, 초점, 준선 구하기

    포물선(parabola)은 y = ax² + bx + c 형태의 이차방정식으로 표현할 수 있으며, 이때 꼭짓점(vertex), 초점(focus), 준선(directrix)은 포물선의 모양과 위치를 결정하는 핵심 요소입니다. 다음은 Java 프로그램을 사용해 포물선의 꼭짓점, 초점 및 준선을 구하는 예제입니다. 핵심 공식 정리 포물선 y = ax² + bx + c 에 대해 각 요소는 다음과 같은 공식으로 계산할 수 있습니다. 꼭짓점(Vertex): ( −b / (2a), (4ac − b²) / (4a) ) 초점(Focus): (

  14. 구면 거울의 초점 거리 계산하기 – Java 코드 예제와 설명

    구면 거울(spherical mirror)은 곡률 반경을 지닌 거울로, 초점 거리(focal length)는 곡률 반경의 절반과 같습니다. 오목 거울(concave mirror)은 초점 거리가 양(+)의 값으로, 볼록 거울(convex mirror)은 음(−)의 값으로 표현됩니다. 다음은 주어진 곡률 반경으로부터 구면 거울의 초점 거리를 계산하는 Java 코드입니다.예제 코드import java.util.*; import java.lang.*; public class Demo{    public static flo

  15. 자바(Java)로 두 개 이상의 숫자 또는 배열의 최대공약수(GCD) 구하기

    두 개 이상의 숫자(또는 배열에 담긴 여러 숫자)의 최대공약수(GCD, Greatest Common Divisor)를 구하는 것은 알고리즘 문제에서 자주 등장하는 기본 주제입니다. 아래 예제는 유클리드 호제법(Euclidean Algorithm)을 재귀 함수로 구현한 뒤, 배열의 모든 요소에 순차적으로 적용하여 전체 배열의 GCD를 계산하는 자바 프로그램입니다.예제 코드public class Demo{ static int gcd_of_nums(int val_1, int val_2){ if (val_1 == 0)

  16. 주어진 숫자가 피보나치 수인지 확인하는 Java 프로그램

    다음은 주어진 숫자가 피보나치 수(Fibonacci number)인지 확인하는 Java 프로그램입니다.예제public class Demo{   static boolean perfect_square_check(int val){      int s = (int) Math.sqrt(val);      return (s*s == val);   }   static boolean fibonacci_num_check(int n){ 

  17. Java로 콘솔 화면 지우기: ANSI 이스케이프 코드 활용 방법

    Java에서 콘솔 화면을 지우려면 ANSI 이스케이프 시퀀스를 활용할 수 있습니다. 다음은 Java를 사용해 화면을 지우는 코드입니다. 예제 public class Demo{ public static void main(String[] args){ System.out.print(\033[H\033[2J); System.out.flush(); } } 출력 결과 화면이 지워집니다 코드 설명 위 코드에는 Demo라는 클래스가 있으며, 그 안에 main 메서드가 포함되어 있습니다. 화면을 지우는 핵

  18. Java를 사용해 여러 파일 이름을 한 번에 바꾸는 방법

    폴더 안에 있는 여러 개의 파일 이름을 일괄적으로 변경해야 하는 경우가 종종 있습니다. Java에서는 File 클래스를 활용하면 이 작업을 간단하게 자동화할 수 있습니다. 아래 예제 코드는 지정된 폴더 내의 모든 파일을 순회하며 파일 이름을 변경하는 방법을 보여줍니다.예제 코드import java.io.File; import java.io.IOException; public class Demo{ public static void main(String[] argv) throws IOException{ String

  19. Java에서 문자열의 모든 순열 출력하기

    다음은 재귀(Recursion)를 활용하여 문자열의 모든 순열(permutation)을 출력하는 Java 프로그램입니다. 예제 코드 public class Demo{    static void print_permutations(String my_str,String my_ans){       if (my_str.length() == 0){          System.out.print(my_ans + );      

  20. Java에서 문자열 사이에 정수를 출력하는 방법

    Java 프로그래밍을 하다 보면 문자열과 문자열 사이에 정수 값을 삽입하여 출력해야 하는 경우가 종종 있습니다. 이때 덧셈 연산자(+)를 활용한 문자열 연결을 사용하면 간단하게 해결할 수 있으며, 연산 순서에 따라 결과가 달라진다는 점을 이해하는 것이 중요합니다.아래는 두 문자열 사이에 정수 값을 출력하는 Java 프로그램 예제입니다.예제 코드public class Demo{    public static void main(String[] args){       System.out.pri

Total 1926 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:71/97  20-컴퓨터/Page Goto:1 65 66 67 68 69 70 71 72 73 74 75 76 77