차곡차곡 성 쌓기
article thumbnail
[Java] String의 split() 메소드 뜯어보기
CS/자바 2025. 1. 19. 20:19

코테를 풀다가 split()의 내부를 몰라 시간복잡도를 구할 수 없어서 공부해보고자 한다. 1. 호출String [] str = br.readLine().split("/");코드 작성 후 실행 후 "10/20/30/40"을 입력한다. 2. String의 split() 실행public String[] split(String regex) { return split(regex, 0);} 3. 구분자 포함여부가 있는 split() 실행private String[] split(String regex, int limit, boolean withDelimiters) { /* fastpath if the regex is a * (1) one-char String and this character is..

article thumbnail
[Java] 제네릭 - Generic
CS/자바 2024. 12. 3. 19:53

처음 자바를 배울 때는 제네릭이 이렇게 중요한 줄 몰랐는데 개발을 할 수록 제네릭 개념이 많이나와서 정리해보고자 한다. 해당 글은 인프런의 '김영한의 실전 자바 - 중급 2편'을 참고했다. 제네릭이 필요한 이유왜 제네릭을 많이 사용할까? 사실 나는 개발할 때 많이 사용하지 않는다. 하지만 사용하고 있는 라이브러리 코드들을 확인해보면 T나 K가 사용되고 있는 코드들이 많았다. 많이 사용하는 이유 중 하나는 `코드의 재사용`이다. 코드의 재사용제네릭을 사용하면 StringBox이든, IntegerBox이든 객체마다 새로운 클래스를 만들지 않고도 단 하나의 클래스만으로 여러 개의 클래스를 지원할 수 있게 된다.public class GenericBox { private T value; pub..

article thumbnail
자바 #6 - static과 final
CS/자바 2024. 2. 13. 00:06

Static 변수 static멤버와 non-static 멤버의 차이 non-static 멤버 static 멤버 공간적 특성 객체마다 별도 존재 클래스당 하나 생성 • 멤버는 객체 내부가 아닌 별도의 공간(데이터 영역)에 생성 시간적 특성 객체 생성시에 멤버 생성됨 • 객체가 사라지면 멤버도 사라짐 클래스 로딩 시에 멤버 생성 • 프로그램이 종료될 때 멤버 사라짐 공유의 특성 공유되지 않음 • 객체 내에 각각 공간 유지 동일한 클래스의 모든 객체들에 의해 공유됨 static변수 객체 접근 public static void main(String []args){ 1. StaticSample s1, s2; 2. s1 = new StaticSample(); 3. s2.n = 5; // static 멤버 접근 } ..

article thumbnail
[알고리즘] 최소 신장 트리 - Java
CS/알고리즘 2024. 2. 10. 11:50

최소 신장 트리 그래프에서 모든 노드를 연결할 때 사용된 Edge들의 가중치의 합을 최소로 하는 트리이다. 특징 사이클이 포함되면 가중치의 합이 최소가 될 수 없으므로 사이클을 포함하지 않는다. N개의 노드가 있을 때 최소 신장 트리를 구성하는 에지의 개수는 항상 N-1개이다. 핵심 이론 모든 Edge들을 '가중치'를 기준으로 오름차순 정렬 후, 가중치가 낮은 Edge부터 연결한다. 이때 사이클이 형성되지 않을 때만 연결한다. 1. Edge 리스트로 그래프를 구현하고 유니온 파인드 배열 초기화하기 그래프를 Edge 중심 형태로 Edge 리스트로 저장한다. edge class는 시작 노드, 끝 노드, 가중치로 구성된다. 사이클 여부를 확인하기 위해 유니온 파인드 배열(parent)를 인덱스의 값으로 초기화..

article thumbnail
자바 #5 - 생성자와 접근 지정자
CS/자바 2024. 2. 9. 20:17

생성자 생성자의 특징 • 메소드이다. • 객체당 한 번 호출된다. • 리턴타입을 지정할 수 없다 • 목적은 객체의 초기화이다. 생성자는 객체가 생성될 때 반드시 호출된다. • 개발자가 생성자를 생성하지 않았다면 컴파일러가 자동으로 기본 생성자 삽입한다. 기본 생성자 매개 변수 없고 아무 작업 없이 단순 리턴하는 생성자 컴파일러가 만든다 하지만 개발자가 클래스 생성자를 하나라도 작성한 경우 컴파일로는 기본 생성자를 만들지 않는다. this 레퍼런스 ▶︎ this 객체 자신에 대한 레퍼런스 ▶︎ this() 클래스 내의 다른 생성자 호출 생성자 내에서만 사용가능 반드시 생성자 코드의 제일 처음에 수행 public class Book{ String title; String author; public Book(..