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

Java

  1. 자바(Java)로 삼각형 패턴 출력하는 방법

    이 글에서는 자바(Java)를 사용하여 콘솔에 삼각형 모양의 패턴을 출력하는 방법을 알아봅니다. 사용자로부터 행(row) 개수를 입력받은 뒤, 중첩 for 반복문을 활용해 공백과 기호를 조합하여 정렬된 삼각형을 만들어 냅니다.예제 코드import java.util.*; public class Demo{ public static void main(String[] args){ Scanner my_scan = new Scanner(System.in); System.out.println(출력할 행의 개수

  2. Java로 구현하는 최장 공통 부분 수열(LCS) 프로그램

    다음은 두 문자열의 최장 공통 부분 수열(Longest Common Subsequence, LCS)의 길이를 구하는 Java 프로그램입니다.예제 코드public class Demo{   int subseq(char[] a, char[] b, int a_len, int b_len){      int my_arr[][] = new int[a_len + 1][b_len + 1];      for (int i = 0; i <= a_len; i++){  &

  3. 자바(Java)로 구현하는 최장 증가 부분 수열(LIS) 프로그램

    최장 증가 부분 수열(Longest Increasing Subsequence, LIS)은 주어진 배열에서 원소들이 오름차순으로 증가하는 가장 긴 부분 수열을 찾는 고전적인 알고리즘 문제입니다. 아래는 자바로 이를 해결하는 프로그램입니다.예제 코드public class Demo{   static int incre_subseq(int my_arr[], int arr_len){      int seq_arr[] = new int[arr_len];      int i,

  4. X로 나누어 떨어지는 가장 큰 K자리 수를 구하는 Java 프로그램

    이번 글에서는 Java를 활용하여 X로 나누어 떨어지는 가장 큰 K자리 숫자를 찾는 방법을 알아보겠습니다. 핵심 아이디어는 간단합니다. 먼저 K자리 수 중 가장 큰 값인 10^K - 1을 구한 뒤, 여기서 X로 나눈 나머지를 빼주면 조건을 만족하는 가장 큰 수를 얻을 수 있습니다.예제 코드import java.io.*; import java.lang.*; public class Demo{ public static int largest_k(int val_1, int val_2){ int i = 10;

  5. 루프 없이 숫자 시리즈를 출력하는 Java 프로그램 – 재귀 함수 활용법

    프로그래밍을 하다 보면 반복문(루프) 없이 일련의 숫자를 출력해야 하는 경우가 있습니다. Java에서는 재귀 함수(recursion)를 활용하면 for나 while 같은 반복문을 사용하지 않고도 손쉽게 숫자 시리즈를 출력할 수 있습니다. 아래 예제를 통해 그 방법을 살펴보겠습니다.예제 코드public class Demo{    public static void main(String[] args){        int my_nu

  6. Java 배열 회전 프로그램 – 왼쪽 회전 알고리즘 구현하기

    배열 회전(Array Rotation)은 배열의 요소들을 지정된 횟수만큼 왼쪽 또는 오른쪽으로 이동시키는 작업입니다. 이 글에서는 최대공약수(GCD)를 활용하는 저글링 알고리즘(Juggling Algorithm)을 사용해 배열을 왼쪽으로 회전하는 Java 프로그램을 소개합니다.아래는 배열 회전을 수행하는 Java 프로그램입니다.예제 코드public class Demo{    void rotate_left(int my_arr[], int d, int len){       d = d % le

  7. Java로 정사면체의 부피를 계산하는 프로그램

    정사면체(tetrahedron)는 네 개의 삼각형 면, 여섯 개의 직선 모서리, 그리고 네 개의 꼭짓점으로 구성된 다면체입니다. 3차원 입체 도형 중 가장 단순한 형태에 속하며, 특히 모든 면이 합동인 정삼각형으로 이루어진 경우를 정사면체라고 부릅니다.이번 글에서는 한 변의 길이가 주어졌을 때 정사면체의 부피를 계산하는 Java 프로그램을 살펴보겠습니다.정사면체 부피 계산 공식정사면체의 부피는 아래 공식을 사용해 구할 수 있습니다.부피 = a³ / (6√2)  (단, a는 한 변의 길이)예제 코드import jav

  8. 자바(Java)로 구현하는 재귀 버블 정렬 프로그램

    버블 정렬(Bubble Sort)은 인접한 두 요소를 반복적으로 비교하고 교환하며 배열을 정렬하는 가장 기본적인 알고리즘 중 하나입니다. 일반적으로 반복문으로 구현하지만, 재귀(Recursion)를 활용하면 더 간결하게 표현할 수 있습니다.재귀 버블 정렬의 동작 원리재귀 버블 정렬은 한 번의 패스(pass)마다 가장 큰 요소를 배열 끝으로 밀어낸 뒤, 남은 구간에 대해 자기 자신을 다시 호출하는 방식으로 동작합니다. 정렬해야 할 범위가 점점 줄어들고, 길이가 1이 되면 더 이상 정렬할 필요가 없으므로 재귀가 종료됩니다.예제 코드im

  9. Java로 구현하는 재귀 삽입 정렬(Recursive Insertion Sort) 완벽 가이드

    재귀 삽입 정렬이란?삽입 정렬(Insertion Sort)은 배열을 정렬된 부분과 정렬되지 않은 부분으로 나눈 뒤, 정렬되지 않은 요소를 하나씩 꺼내 올바른 위치에 삽입하는 방식의 정렬 알고리즘입니다. 일반적으로 반복문으로 구현하지만, 재귀 호출을 활용하면 코드가 더 간결해지고 재귀적 사고방식을 익히는 좋은 연습 예제가 됩니다.예제 코드다음은 Java로 작성한 재귀 삽입 정렬 프로그램입니다.import java.util.Arrays; public class Demo{ static void recursive_ins_sort(i

  10. Java로 구현하는 배열 회전 반전(Reversal) 알고리즘 완벽 가이드

    배열을 효율적으로 회전시키는 대표적인 기법 중 하나인 반전(Reversal) 알고리즘은 추가 메모리 없이 배열을 원하는 만큼 회전할 수 있는 우아한 방법입니다. 세 번의 반전 연산만으로 회전을 완료할 수 있어 널리 사용됩니다. 아래는 이 알고리즘을 Java로 구현한 예제입니다.예제 코드import java.io.*; public class Demo{ static void rotate_left(int my_arr[], int no_of_rotation){ int n = my_arr.length; a

  11. 자바(Java)로 구현하는 그놈 정렬(Gnome Sort) 프로그램

    그놈 정렬(Gnome Sort)은 한 번에 하나의 요소를 처리하며 해당 요소를 올바른 위치로 이동시키는 방식으로 동작하는 정렬 알고리즘입니다. 동작 원리가 단순하여 이해하기 쉽고, 삽입 정렬과 유사한 특징을 가지고 있습니다. 아래 예제를 통해 자바에서 그놈 정렬을 구현하는 방법을 살펴보겠습니다.예제 코드import java.util.Arrays; public class Demo{    static void gnome_sort(int my_arr[], int n){       int ind

  12. 자바(Java)로 구현하는 반복 병합 정렬 프로그램

    병합 정렬(Merge Sort)은 배열을 절반씩 나누어 각각 정렬한 뒤 다시 하나로 합치는 분할 정복(Divide and Conquer) 기반의 대표적인 정렬 알고리즘입니다. 아래는 자바(Java)로 작성한 병합 정렬 프로그램입니다.예제 코드import java.util.Arrays; public class Demo{    public static void merge_sort(int[] my_arr){       if(my_arr == null){       &

  13. Java로 구현하는 반복적(Iterative) 퀵 정렬 프로그램

    퀵 정렬(Quick Sort)은 일반적으로 재귀 호출을 사용하지만, 재귀 대신 명시적인 스택(배열)을 활용하면 반복적(Iterative) 방식으로도 구현할 수 있습니다. 재귀 호출로 인한 스택 오버플로우를 걱정할 필요가 없고, 함수 호출 오버헤드를 줄일 수 있다는 점이 장점입니다.다음은 반복적 퀵 정렬을 구현한 Java 프로그램입니다.예제 코드public class Demo{ void swap_vals(int arr[], int i, int j){ int temp = arr[i]; arr[i] =

  14. JVM(Java Virtual Machine) 스택 영역 완벽 이해하기

    JVM(Java Virtual Machine)의 메모리 구조 중 하나인 스택 영역(Stack Area)은 스레드의 실행과 밀접한 관련이 있습니다. 이번 글에서는 JVM 스택 영역의 동작 원리와 구조를 자세히 살펴보겠습니다. JVM 스택 영역의 핵심 특징 스레드별 독립적인 스택 생성 — 스레드가 생성되는 시점에 JVM은 해당 스레드 전용의 별도 스택을 만듭니다. Push와 Pop 연산만 수행 — JVM은 이 스택 위에서 오직 두 가지 연산만 수행합니다. 데이터를 삽입하는 push와 삭제하는 pop입니다. 런타임 스택(Runtim

  15. 자바(Java)로 구현하는 최대 힙(Max Heap) — PriorityQueue 활용 방법

    최대 힙(Max Heap)이란?최대 힙(Max Heap)은 완전 이진 트리(complete binary tree)의 한 종류로, 모든 단계에서 부모 노드(루트 노드)의 값이 자식 노드의 값보다 크거나 같은 구조를 가지는 자료구조입니다. 이러한 특성 덕분에 트리 전체에서 가장 큰 값이 항상 루트에 위치하게 되며, 최댓값 조회를 O(1)의 시간 복잡도로 수행할 수 있습니다.자바에서는 별도의 힙 구현 없이 표준 라이브러리인 PriorityQueue 클래스를 활용하면 손쉽게 최대 힙을 사용할 수 있습니다. 기본적으로 PriorityQueu

  16. Java 메모리 누수(Memory Leak)란? 원인과 OutOfMemoryError 발생 예제까지 총정리

    Java에서는 가비지 컬렉션(Garbage Collector)이 소멸자(Destructor) 역할을 대신하며, 사용하지 않는 객체를 자동으로 정리해 줍니다. 그렇다면 코드 어딘가에 여전히 참조가 남아 있는 객체는 어떻게 될까요?참조가 하나라도 유지되고 있다면 해당 객체는 할당 해제(de-allocation)될 수 없고, 그 메모리도 회수되지 못합니다. 이런 상황이 반복되어 생성되거나 참조된 객체들이 실제로는 전혀 사용되지 않는 상태로 계속 쌓이게 되는데, 바로 이것이 메모리 누수(Memory Leak)입니다.OutOfMemoryEr

  17. Java에서 두 개의 배열을 새로운 객체 배열로 병합하는 방법

    Java에서는 Stream API의 concat() 메서드를 활용하면 두 개의 배열을 손쉽게 하나의 새로운 객체 배열로 병합할 수 있습니다. 이 글에서는 실제 예제 코드와 함께 그 동작 원리를 자세히 살펴보겠습니다.병합 예제 코드다음은 Java에서 두 개의 배열을 새로운 객체 배열로 병합하는 프로그램입니다.import java.util.stream.Stream; import java.util.Arrays; import java.io.*; public class Demo{ public static <T> Object

  18. Java에서 두 개의 Set(집합)을 병합하는 방법

    Java에서 두 개의 Set 컬렉션을 하나로 합치는 작업은 실무에서 자주 마주치는 상황입니다. 가장 간단하고 안전한 방법 중 하나는 스트림(Stream) API로 원본 집합을 복사한 뒤, addAll() 메서드를 사용해 다른 집합의 요소를 추가하는 것입니다. 예제 코드 import java.util.stream.*; import java.util.*; import java.io.*; public class Demo{ public static <T> Set<T> set_merge(Set<T>

  19. Java 런타임 스택(Runtime Stack)의 동작 원리 완벽 이해

    런타임 스택이란 무엇인가?Java에서 프로세스, 코드 또는 스레드(thread)가 실행될 때마다 런타임 스택(runtime stack)이 생성됩니다. 이 스택은 스레드가 실행되는 동안 수행되는 다양한 연산 정보를 저장하는 역할을 합니다.런타임 스택에 쌓이는 각 항목은 스택 프레임(stack frame) 또는 활성화 레코드(activation record)라고 불립니다. 메서드가 호출되면 해당 메서드의 데이터가 스택에 저장되고, 실행이 완료되면 그와 관련된 데이터는 런타임 스택에서 제거됩니다.모든 메서드의 실행이 끝나면 런타임 스택은

  20. Java에서 빈(Empty) 함수를 작성하는 방법

    Java에서 빈 함수를 작성하는 방법을 살펴보겠습니다.예제import java.util.Vector; public class Demo{ public static void my_empty_fun(){ } public static void main(String[] args){ System.out.println(In the main function); my_empty_fun(); } }출력In the main function빈 함수란 기본적으로 함수 내부에 어떠한 연산도 정의

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