객체는 사용자가 정의한 타입으로, 사용자가 원하는 임의의 정렬 기준에 맞춰 객체를 정렬할 수도 있다. 예를 들어, 성적을 나타내는 Grade 클래스가 있다고 해보자. 국어점수는 증가하는 순으로, 수학점수는 감소하는 순으로 정렬하고자 할 때 Grade 타입의 객체들을 임
1. Scanner와 BufferedReader 2. System.out.println()과 StringBuilder
List 인터페이스 안에 ArrayList, LinkedList 등이 포함되며, 공통되는 메서드를 추출해놓고 실제 구현은 클래스 내에서 이루어진다. 결국 ArrayList는 List에 상속된 클래스의 관계를 가진다.리스트는 배열의 단점을 개선하여 크기가 동적으로 변하며
타입 변환(형 변환, Casting)이란? 하나의 데이터 타입을 다른 타입으로 바꾸는 것기본형(primitive type) - Boolean(boolean), Numeric(short, int, long, float, double, char)참조형(reference t
자바 알고리즘에서 정렬을 해야할 때, sort() 메서드가 Arrays와 Collections 두 가지로 존재하는 것을 알 수 있다. 같은 정렬 기능을 하지만, 내부 정렬 방식 및 대상에서 차이가 있다. java.util.Arrays 의 메소드로, 정렬 기준 기본값은
컴퓨터의 키보드, 파일, 네트워크 등으로 입력을 하면 컴퓨터의 메모리에 입력값들이 저장되었다가 콘솔, 파일, 네트워크 등으로 출력된다. 이때 데이터는 0과 1의 byte 단위로만 이동하며, 자바에서는 입출력을 실행하기 위해 Stream이 사용된다.바이트 단위로는 그림,
StringStringBuilderStringBufferString 클래스는 불변의 속성을 가진다. 예를 들어, 문자열 더하기 연산을 수행했을 때 기존에 값이 들어있던 메모리 영역을 제거하고, 이어 붙인 문자열을 담은 새로운 값을 새로운 메모리 영역에 할당하여 이를 가
합병 정렬, 퀵 정렬 등의 기본 정렬 알고리즘과 달리 숫자를 비교하는 작업이 없이 각 항목의 개수를 카운트하여 정렬하는 알고리즘이다. 최댓값과 입력 배열의 원소 값 개수를 누적합으로 구성한 배열로 정렬을 수행하며, 주어진 배열의 값 범위가 작은 경우에 빠른 속도로 정렬
자바에서는 변수의 정수 표현 범위를 넘어가는 경우를 고려하여 java.math 패키지에서 int, long의 원시 타입 대신 사용할 수 있는 BigInteger 클래스를 제공한다. 문제가 제시될 때 보통 최악의 경우도 고려해야 하므로 무한의 정수가 들어갈 가능성이 있다
Java에서 문자열을 원하는 구분자로 분리하고 싶을 때 String 클래스의 split()을 쓰거나 StringTokenizer를 사용할 수 있다.String 클래스의 멤버로, 지정한 구분자로 문자열을 분리하여 배열에 저장 → 인자로 정규표현식(regex)을 사용하므로
두 자연수의 공통된 약수 중 가장 큰 수\*최소공배수(LCM)는 두 자연수의 곱 / 최대공약수의 공식으로 구할 수 있다. 유클리드 알고리즘은 2개의 자연수의 최대공약수를 구하는 알고리즘 중 하나로, 두 수가 서로의 상대방 수를 나누어 원하는 수를 얻어내는 접근으로 이루
아스키코드 *️⃣ 문자 → 숫자 변환 *️⃣ 숫자 → 문자 변환
Integer 클래스의 toBinaryString(), toOctalString(), toHexString() 메소드를 사용하면 각각 2진수, 8진수, 16진수로 변환할 수 있다. Integer 클래스의 parseInt()를 사용하여 쉽게 10진수 변환이 가능하다.
1보다 큰 자연수 중 1과 자기자신만을 약수로 가지는 수대량의 소수를 한꺼번에 빠르고 정확하게 판별할 수 있는 알고리즘으로, 가장 먼저 소수를 판별할 범위만큼 배열을 할당하고, 해당 값을 넣어준 후 하나씩 지워나가는 방식이다.마치 체처럼 걸러낸다고 하여 다음과 같은 이
어떤 자연수를 소수의 곱으로 나타내는 것을 소인수분해라고 한다. 예를 들어, 12를 소인수분해하면 2 x 2 x 3으로 나타낼 수 있, 이때 2와 3은 소수이다. 배수 판정법모든 합성수는 그 수의 제곱근보다 작거나 같은 약수를 갖는다.소수 2부터 시작하여 입력받은 수를