algorithm 51

99클럽 코테 스터디 3일차 TIL - java String / java 약수 구하기 최적화 알고리즘

String 사용 빈도수 높은 method 리턴 타입 메소드 이름(매개 변수) 설명 char charAt(int index) 특정 위치의 문자를 리턴합니다. boolean equals(Object anObject) 두 문자열을 비교합니다. byte[] getBytes() byte[]로 리턴합니다. byte[] getBytes(Charset charset) 주어진 문자셋으로 인코딩한 byte[]로 리턴합니다. int indexOf(String str) 문자열 내에서 주어진 문자열의 위치를 리턴합니다. int length() 총 문자의 수를 리턴합니다. String replace(CharSequence target, CharSequence replacement) target 부분을 replacement로 대..

algorithm/정리 2024.04.03

99클럽 코테 스터디 2일차 TIL - 백준 11279 (최대 힙) java

java로 최대/최소 힙 구현 -> PriorityQueue 사용 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N; N = Integer.parseInt(br.readLine()); int num; PriorityQueue pq = new PriorityQueue((a,b)->(b-a)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < N; i..

기본 자료구조 - 해시, 트리, 힙

해시 (Hash) 임의의 데이터에 대해 고정된 길이의 데이터로 매핑 이론적으로 삭제 O(1), 삽입 O(1), 검색 O(1)의 시간복잡도 해시 테이블 내부의 값이 많아지면 해시충돌 현상 -> 기본 연산의 시간 길어짐 public class HelloWorld { public static void main(String[] args) { HashMap h1 = new HashMap(); HashMap h2 = new HashMap(); h1.put("aaa", "1111"); h1.put("bbb", "2222"); h1.put("ccc", "3333"); h1.putIfAbsent("aaa", "0000"); h1.putIfAbsent("ddd", "4444"); h2.putAll(h1); System.o..

algorithm/정리 2024.03.31

기본 자료구조 - Stack, Queue, Deque

스택(Stack) FILO (First In, Last Out) 구조 삽입과 삭제 연산이 동일한 한군데 삽입/삭제 연산 시간복잡도 O(1) 제일 상단의 원소 확인이 O(1) 제일 상단이 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능 이전에 활용한 데이터를 역으로 추적하거나 처음 들어온 데이터보다 나중에 들어온 데이터가 빨리 나가야 할 때 사용 stack s; s.push(10); s.push(20); s.top();//20 s.pop(); //20 큐 (Queue) FIFO (Fisrt In, First Out) 구조 삽입과 삭제 연산이 서로 다른 한군데에서 발생 삽입/삭제 연산에 있어 시간복잡도 O(1) 제일 앞/뒤의 원소확인이 O(1) 맨 앞을 front, 맨 뒤를 rear 삽입연산을 enque..

algorithm/정리 2024.03.30

백준 10989번 (수 정렬하기 3) Java 11 계수 정렬

문졔 : 수 정렬하기 3 시간 제한 : 3 sec 메모리 제한 : 8MB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; ..

백준 2740번 (행렬 곱셈) 자바 Java11

문제 : 행렬 곱셈 시간 제한 : 1 sec 메모리 제한 : 128 MB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ // BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // BufferedWriter bw = new BufferedWrite..

백준 1914번 (하노이 탑) 자바 Java11

문제 : 하노이 탑 시간 제한 : 6 sec 메모리 제한 : 128 MB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Bu..

백준 2747번 (피보나치 수) 자바 Java 11

문제 : 피보나치 수 시간 제한 : 1 sec 메모리 제한 : 128 MB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = In..