전체 글533 [자바] String 클래스 String API에서 제공하는 문자열 처리 클래스 객체 자료형이지만 기본 자료형처럼 String a = "a"; 와 같은 선언이 가능하다. String 객체는 immutable 해서 한 번 선언된 String은 바뀌지 않는다. 때문에 += 과 같이 변경하는 작업 시엔 메모리를 계속해서 사용하게 된다. (때문에 대신 StringBuilder, StringBuffer를 사용함) 메모리 상에는 char[] 형으로 구현됨 특징 같은 내용의 문자열은 메모리 상에서 한 번만 선언된다. new 키워드를 사용해서 선언할 시 메모리에 새로운 공간을 만들어 내게 되므로 다른 곳에 선언됨. import java.util.*; public class Main { public static void main(String[] a.. 2020. 9. 1. [자바] Comparable, Comparator Interface Comparable 어떤 객체들을 정렬할 때 어떤 기준으로 정렬할지 정할 수 있게 해주는 기능을 제공하는 인터페이스 객체들의 기본이 되는 정렬 기준을 정의하는 역할 객체들은 Collection.sort() 메서드(혹은 Arrays.sort()) 를 이용해서 정렬을 하게 되는데 이 때 Comparable을 implements한 클래스의 객체라면 클래스 내부에 compareTo() 메서드를 오버라이드해서 미리 정렬 기준을 정해놓을 수 있다. Integer, Long, Double 등의 Wrapper 클래스들은 기본적으로 다 Comparable을 구현하고 있다. (기본적으로 오름차순으로 정렬됨) compareTo(Object o) 이 때 Object o는 현재 객체보다 뒤에 있는 객체를 의미.. 2020. 9. 1. [알고리즘] 중량제한 (백준 1939번) 1939번: 중량제한 첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리 www.acmicpc.net 전형적인 'BFS + BinarySearch' 유형의 문제이다. BinarySearch로 최대값 혹은 최소값을 찾되 BFS로 현재 값이 타당한지를 판단하는 문제 유형이다. Solution 이 문제는 트럭에 실릴 수 있는 최대 중량을 구하라는 문제이다. 만약 트럭의 특정 중량을 기준으로 도착지까지 갈 수 없다면, 그보다 더 높은 중량으로는 당연히 도착지까지 갈 수가 없기에 search하는 값들이 정렬이 되어 있기에 .. 2020. 9. 1. [알고리즘] 이분 탐색 (Binary Search) 이분 탐색 (Binary Search) O( log N )의 시간 복잡도로 전체 배열에서 특정 값을 찾아내는 방법 이 때 배열은 무조건 정렬이 되어있어야함 반복문 실행할 때마다 탐색 범위를 왼쪽 절반 혹은 오른쪽 절반으로 줄여 나감 응용 최대값, 혹은 최소값을 찾는 문제 1939번: 중량제한 첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리 www.acmicpc.net 알고리즘 left = index 최소 값 right = index 최대 값 반복문 실행 left가 right 보다 이하일 동안 반복 (left m.. 2020. 8. 31. 이전 1 ··· 114 115 116 117 118 119 120 ··· 134 다음