0, 1, 2로만 이루어진 배열이 주어졌을 때, 모든 0은 1보다 앞에, 모든 2는 맨 뒤에 오도록 배열 전체를 제자리(in-place)에서 정렬해야 합니다. 별도의 배열을 만들지 않고 단 한 번의 순회로 문제를 해결할 수 있는 대표적인 방법이 바로 DNF(네덜란드 국기, Dutch National Flag) 정렬 알고리즘입니다.입력 예시 1 −arr[ ] = {2, 0, 0, 1, 2, 1}출력 −0 0 1 1 2 2설명 − DNF 정렬 알고리즘으로 0, 1, 2를 포함한 배열을 정렬하면 {0, 0, 1, 1, 2, 2}가 출력됩
정규 표현식(Regex)이란? 정규 표현식은 패턴에 담긴 특수한 문법을 사용해 다른 문자열이나 문자열 집합을 찾아내거나 일치 여부를 확인하는 데 활용되는 특수 문자 시퀀스입니다. 캡처 그룹(Capturing Group)의 의미 정규식에서 캡처 그룹은 여러 문자를 하나의 단위로 다루기 위한 기능으로, 괄호 ()로 표현합니다. 즉, 괄호 안에 여러 개의 하위 패턴을 넣으면 해당 부분이 하나의 그룹으로 묶이고, 매칭 결과를 그룹 단위로 추출할 수 있습니다. 예를 들어 [0-9]는 0부터 9 사이의 숫자 한 자리와 일치하고, 수량자 {5}
정규 표현식(Regular Expression)은 입력 텍스트에서 원하는 패턴을 검색하거나 치환하기 위해 문자들의 조합으로 정의한 문자열입니다. 하나 이상의 문자로 구성될 수 있으며, 이를 활용하면 문자열을 손쉽게 검색하거나 원하는 형태로 교체할 수 있습니다.Java는 java.util.regex 패키지를 통해 정규 표현식 기반의 패턴 매칭 기능을 제공합니다. 이 패키지에는 세 가지 주요 클래스가 포함되어 있습니다.1. Pattern 클래스Pattern 클래스는 정규 표현식을 컴파일한 결과를 나타내는 클래스입니다. 문자열과 정규 표
java.lang 패키지의 String 클래스는 문자들의 집합을 표현합니다. 자바 프로그램에 등장하는 모든 문자열 리터럴(예: abc)은 이 클래스의 인스턴스로 구현됩니다. 여기서 문자열 인덱스란 0부터 시작하여 문자열 내 각 문자의 위치를 나타내는 정수를 의미합니다. 부분문자열(substring)이란 하나의 문자열을 이루는 일부 구간을 뜻합니다. String 클래스의 substring() 메서드를 사용하면 문자열에서 원하는 부분을 손쉽게 잘라낼 수 있으며, 이 메서드는 다음과 같이 두 가지 형태로 제공됩니다. 1. substri
정규 표현식(Regular Expression)은 특수한 문법으로 구성된 문자열 패턴을 통해 다른 문자열이나 문자열 집합을 검색하거나 찾아낼 수 있게 해주는 강력한 도구입니다. 이를 활용하면 텍스트와 데이터를 손쉽게 검색, 편집, 조작할 수 있습니다. Java는 java.util.regex 패키지를 통해 정규식 기반의 패턴 매칭 기능을 기본적으로 제공합니다.Matcher 클래스란?Matcher 객체는 컴파일된 패턴을 해석하고 입력 문자열에 대해 매칭 작업을 수행하는 엔진 역할을 합니다. Pattern 클래스와 마찬가지로 Matche
정규식(Regular Expression)은 입력 텍스트를 검색하거나 처리하기 위한 패턴을 정의하는 특수 문자열입니다. 하나 이상의 문자로 구성될 수 있으며, 정규식을 활용하면 문자열을 손쉽게 검색하거나 치환할 수 있습니다.Java는 정규식 기반의 패턴 매칭을 위해 java.util.regex 패키지를 제공합니다. 이 패키지의 핵심인 Pattern 클래스는 컴파일된 정규식의 표현체 역할을 하며, 문자열과 정규식을 매칭하기 위해 다음 두 가지 메서드를 제공합니다.compile(): 정규식을 나타내는 String을 인수로 받아, 컴파일
자바에서 생성자(Constructor)는 문법적으로 일반 메서드와 매우 유사합니다. 다만 두 가지 중요한 차이점이 있습니다. 첫째, 생성자의 이름은 반드시 클래스 이름과 동일해야 하며, 둘째, 생성자는 반환 타입을 가지지 않습니다.생성자는 개발자가 직접 호출할 필요가 없습니다. 객체를 생성(인스턴스화)하는 순간 JVM에 의해 암묵적으로 자동 호출됩니다. 생성자의 핵심 목적은 클래스의 인스턴스 변수를 초기화하여 객체가 올바른 상태로 시작될 수 있도록 하는 것입니다.생성자의 기본 문법생성자는 아래와 같은 형태로 정의합니다.class C
Java에서 생성자(Constructor)란 무엇일까?생성자(constructor)는 메서드와 비슷한 형태를 가지지만, 클래스의 객체가 생성되는 시점에 자동으로 호출된다는 점에서 차이가 있습니다. 생성자는 주로 클래스의 인스턴스 변수(instance variable)를 초기화하는 용도로 사용됩니다.생성자의 특징을 정리하면 다음과 같습니다.클래스와 동일한 이름을 가져야 합니다.반환 타입이 없습니다. (void조차 명시하지 않습니다.)객체 생성 시(new 키워드 사용 시) 자동으로 한 번 호출됩니다.생성자는 크게 두 가지 유형으로 나눌
생성자(Constructor)란? 생성자는 메서드와 비슷한 역할을 하며, 클래스의 객체가 생성되는 시점에 자동으로 호출됩니다. 주로 클래스의 인스턴스 변수를 초기화하는 용도로 사용되며, 클래스와 이름이 같고 반환 타입이 없다는 특징이 있습니다. 생성자의 두 가지 종류 Java의 생성자는 크게 두 가지로 나눌 수 있습니다. 기본 생성자(No-arg Constructor): 매개변수를 받지 않는 기본 형태의 생성자입니다. 매개변수화된 생성자(Parameterized Constructor): 하나 이상의 매개변수를 전달받는 생성자입니다
생성자(Constructor)는 메서드와 비슷한 역할을 하며, 클래스의 객체가 생성되는 시점에 자동으로 호출됩니다. 주로 클래스의 인스턴스 변수를 초기화하는 용도로 사용되며, 생성자의 이름은 반드시 해당 클래스의 이름과 동일해야 합니다.생성자의 반환 타입생성자는 어떠한 반환 타입(return type)도 가지지 않습니다.메서드가 반환하는 값의 데이터 타입은 다양할 수 있으며, 메서드의 반환 타입은 그 값의 타입을 나타냅니다.생성자는 명시적으로 어떤 값도 반환하지 않지만, 내부적으로는 자신이 속한 클래스의 인스턴스를 반환합니다.예제
생성자(Constructor)는 메서드와 형태가 비슷하지만, 클래스의 객체가 생성되는 시점에 자동으로 호출된다는 점에서 차이가 있습니다. 생성자는 일반적으로 클래스의 인스턴스 변수를 초기화하는 데 사용됩니다. 또한 생성자는 반드시 클래스와 같은 이름을 가져야 하며, 반환 타입을 가지지 않습니다.Java의 생성자는 크게 두 가지 유형으로 나뉩니다. 바로 매개변수 생성자(Parameterized Constructor)와 인자 없는 생성자(No-arg Constructor)입니다.1. 매개변수 생성자(Parameterized Constr
생성자(Constructor)는 메서드와 유사한 특수한 멤버로, 클래스의 객체가 생성되는 시점에 자동으로 호출됩니다. 주로 클래스의 인스턴스 변수를 초기화하는 데 사용되며, 생성자의 이름은 반드시 클래스 이름과 같아야 하고 반환 타입을 가지지 않습니다.매개변수화 생성자란?매개변수화 생성자(Parameterized Constructor)는 하나 이상의 매개변수를 받아들이는 생성자로, 전달받은 값을 사용해 인스턴스 변수를 초기화합니다. 매개변수화 생성자를 활용하면 객체를 인스턴스화하는 시점에 서로 다른 값을 전달하여 클래스 변수를 동적
생성자(Constructor)란 무엇인가?생성자는 메서드와 비슷한 형태를 가지지만, 클래스의 객체가 생성되는 시점에 자동으로 호출되는 특별한 멤버입니다. 일반적으로 클래스의 인스턴스 변수를 초기화하는 용도로 사용됩니다.생성자는 다음과 같은 특징을 가지고 있습니다.생성자의 이름은 반드시 클래스 이름과 같아야 합니다.반환 타입(return type)이 없으며, void조차 붙이지 않습니다.객체를 생성할 때 new 키워드와 함께 자동으로 호출됩니다.Java의 생성자는 크게 두 가지 유형으로 나뉩니다.매개변수 없는 생성자(No-arg Co
기본 생성자(No-arg Constructor)란?매개변수가 없는 생성자(no-arg constructor)는 어떤 인자도 받지 않고, 클래스의 변수들을 각 타입별 기본값으로 초기화합니다. 즉, 객체 타입은 null, float와 double은 0.0, boolean은 false, byte, short, int, long은 0으로 초기화됩니다.생성자는 개발자가 명시적으로 호출할 필요가 없습니다. 객체가 인스턴스화되는 순간 자동으로 호출됩니다. 또한 클래스에 생성자를 하나도 정의하지 않으면, 컴파일러가 자동으로 기본 생성자를 만들어
자바는 크게 Java SE(Standard Edition)와 Java EE(Enterprise Edition)로 나뉩니다. 두 에디션은 개발 목적과 제공하는 기능에서 뚜렷한 차이를 보이며, 어떤 종류의 애플리케이션을 만들고자 하는지에 따라 적합한 에디션이 달라집니다. JSE(Java Standard Edition)란? Java SE는 흔히 코어 자바(Core Java)라고도 불리며, 단독으로 실행되는 독립형(stand-alone) 애플리케이션을 개발할 때 사용됩니다. 대표적인 예로 어도비 리더(Adobe Reader), 백신 프로그
Java 프로그래밍에서 날짜와 시간을 다루는 것은 매우 흔한 작업입니다. 이 글에서는 java.util.Date, SimpleDateFormat, LocalDate 클래스를 활용해 날짜 객체를 생성하는 대표적인 세 가지 방법을 예제 코드와 함께 소개합니다. Date 클래스 사용하기 java.util.Date 패키지의 Date() 생성자를 호출하면 현재 시각을 나타내는 Date 객체를 만들 수 있습니다. 이 생성자로 생성된 객체는 실행 시점의 현재 날짜와 시간을 그대로 담고 있습니다. 예제 코드 import java.util.Dat
java.sql.Date 클래스는 JDBC에서 날짜 값을 표현할 때 사용되는 클래스입니다. 이 객체를 생성하는 방법은 크게 두 가지가 있는데, 하나는 생성자(Constructor)를 사용하는 방법이고, 다른 하나는 valueOf() 메서드를 사용하는 방법입니다. 1. 생성자(Constructor) 사용하기 java.sql.Date의 생성자는 원하는 날짜를 나타내는 long 타입의 값(밀리초 단위 에포크 시간)을 인자로 받아 해당 날짜의 Date 객체를 생성합니다. Date(long date) 일반적으로 문자열 형태의 날짜를 Simp
SimpleDateFormat이란?java.text.SimpleDateFormat 클래스는 문자열을 날짜(Date) 객체로 변환하거나, 반대로 날짜 객체를 지정한 형식의 문자열로 변환(포맷 및 파싱)할 때 사용되는 대표적인 날짜 처리 클래스입니다.이 클래스의 생성자 중 하나는 원하는 날짜 형식을 나타내는 String 패턴 값을 인자로 받아 SimpleDateFormat 객체를 생성합니다.날짜 문자열 파싱하기문자열을 Date 객체로 변환(파싱)하려면 다음 두 단계만 거치면 됩니다.원하는 형식 패턴 문자열을 생성자에 전달하여 Simpl
Java에서는 다양한 방법으로 현재 날짜를 가져올 수 있습니다. 이 글에서는 가장 많이 사용되는 네 가지 방법을 예제 코드와 함께 소개합니다. 1. Date 클래스의 생성자 활용 java.util.Date 클래스의 인자 없는 생성자는 현재 날짜와 시간을 나타내는 Date 객체를 반환합니다. 이 객체를 SimpleDateFormat과 함께 사용하면 원하는 형식으로 현재 날짜를 출력할 수 있습니다. 예제 import java.text.SimpleDateFormat; import java.text.ParseException; import
Java에서는 다양한 방법으로 현재 날짜와 시간을 가져올 수 있습니다. 이 글에서는 가장 많이 사용되는 대표적인 네 가지 방법을 예제 코드와 함께 소개합니다. 1. Date 클래스의 생성자 활용 java.util.Date 클래스의 인수 없는(no-arg) 생성자를 호출하면 현재 날짜와 시간을 나타내는 Date 객체가 반환됩니다. 예제 import java.util.Date; public class CreateDate { public static void main(String args[]) { Date date