java
-
백준 : 힙 정렬2코딩테스트 문제 풀이/백준 2023. 11. 21. 00:01
이번 문제는 수도코드가 문제에 함께 나와있었어서 정말 금방 끝낼줄 알았는데...............................................................................................................................................................................................................................................................................................................................orz.....................................
-
프로그래머스 : K번째 수코딩테스트 문제 풀이/프로그래머스 2023. 11. 21. 00:01
프로그래머스 문제 링크 나의 접근 방법 먼저 foreach문을 사용해서 array의 제시된 부분을 Arrays 클래스의 copyOfRange( 원본배열 , 시작인덱스 , 끝인덱스 ) 메소드를 사용해 새로운 배열로 복사해온다. 그 다음 Arrays 클래스의 sort 메소드를 사용하여 정렬을 하고 결과를 담을 answer 배열에 제시된 인덱스의 값을 담아준다. 내 코드 public int[] test(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int idx = 0; for (int[] arg : commands) { int[] list = Arrays.copyOfRange(array, arg[0] - 1, arg[1])..
-
힙 HeapComputer Science/자료구조 2023. 11. 21. 00:01
항상 완전 이진 트리 형태 -> 중복을 허용 -> 반 정렬 상태임 [= 부모 자식관계에선 정렬되어있지만, 형제끼리는 정렬되어있지않음] 최소값, 최대값을 빠르게 찾는데 유용 -> 최소힙 Min Heap , 최대힙 Max Heap -> 최소힙 : 부모 노드의 키 ≤ 자식 노드의 키 -> 최대힙 : 부모 노드의 키 ≥ 자식 노드의 키 Heap의 특성(같은 레벨에선 노드가 좌측부터 채워짐)으로 인해 보통 배열을 통해서 구현한다. Heap의 삽입 Min Heap을 예시로 함 트리의 가장 끝에 데이터 삽입 부모 노드와 키를 비교한 후 삽입된 키가 더 작을 경우 부모와 교체 (반복) Heap의 삭제 Min Heap을 예시로 함 항상 최상위 노드를 반환 & 삭제 가장 마지막 위치의 노드를 최상위로 옮김 자식 노드 중 ..
-
트리Computer Science/자료구조 2023. 11. 21. 00:01
노드와 링크로 구성된 자료 구조 그래프의 일종 -> 순환하면 그래프 , 순환하지 않으면 트리 계층적 구조를 나타낼 때 사용 -> 폴더구조, 조직도, 가계도 트리의 구조 노드 트리 구조의 자료값을 담는 단위 에지 = 엣지 = 간선 = edge = branch = link 노드간의 연결선 루트 노드 = Root 부모가 없는 노드. 최상위 노드 잎새 노드 = 단말 노드 = Leaf 자식이 없는 노드 내부 노드 잎새노드를 제외한 모든 노드 부모 노드 연결된 두 노드 중 상위인 노드 자식 노드 연결된 두 노드 중 하위인 노드 형제 노드 같은 부모를 가지는 노드 레벨 트리의 특정 깊이를 가지는 노드 집합 깊이 루트에서 어떤 노드까지의 간선 수 높이 트리에서 가장 큰 레벨 값 크기 자신을 포함한 자식 노드의 개수 차..
-
코딩테스트용 프로젝트 템플릿!! 😆Language/Java 2023. 11. 21. 00:01
/ Main.java import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; /** Index site 0 : 백준 01. 02. site 1 : 프로그래머스 01. 2차원으로 만들기 [https://school.programmers.co.kr/learn/courses/30/lessons/120842] 02. 정렬 [https://school.programmers.co.kr/learn/courses/30/lessons/42748] */ public class Main { public static void main(String[] args) throws ClassNotFoundException, InvocationTar..
-
프로그래머스 : 프린터코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01
문제 설명 내 코드 import java.util.*; class Solution { public int solution(int[] priorities, int location) { int answer = 0; Queue q = new LinkedList(); for (int i = 0; i < priorities.length; i++) { q.offer(new int[]{priorities[i], (location == i) ? 1 : 0}); } Arrays.sort(priorities); int maxIdx = priorities.length - 1; while (!q.isEmpty()) { int[] get = q.poll(); if (get[0] != priorities[maxIdx]) q.of..
-
백준: 요세푸스 문제코딩테스트 문제 풀이/백준 2023. 11. 20. 00:01
문제 내 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer sz = new StringTokenizer(br.readLine()); int N = sz.hasMoreToken..
-
Linked List 연결리스트Computer Science/자료구조 2023. 11. 20. 00:01
데이터를 링크로 연결해서 관리 자료의 순서는 정해져 있지만, 메모리 상의 연속성은 보장하지 않는다. 장점 데이터의 공간을 미리 할당할 필요가 없다. 리스트의 길이가 가변적임 -> 데이터의 추가, 삭제가 용이하다. 단점 연결 구조 위한 별도의 공간 필요 연결 정보 찾는데 시간이 필요 -> 상대적으로 접근 속도가 느리다. 데이터의 추가, 삭제 시 앞뒤 데이터의 연결을 재구성 해줘야 한다. 단방향 연결리스트 기본 구조 사용되는 노드의 구조 class Node { T data; Node next; Node(){} Node(T data, Node next) { this.data = data; this.next = next; } } 일방통행적인 노드 연결 구조 한 방향으로만 탐색이 가능함 ex. 노드 D 찾기 노드..
-
프로그래머스 : 위장코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01
문제 설명 내 코드 package codingtest.programmers; import java.util.HashMap; public class Test02 { public static int solution(String[][] clothes) { int answer = 0; HashMap h = new HashMap(); for (String[] s: clothes) { h.put(s[1], 0); } if (h.size() == 1) return clothes.length; for (String[] s: clothes) { h.put(s[1], h.get(s[1]) + 1); } for (int i : h.values()) { answer += i * (1 + answer); } return ans..
-
해시맵 HashMapComputer Science/자료구조 2023. 11. 20. 00:01
Map Interface 순서가 없는 자료형 키 , 값 의 형태로 데이터 관리 대표 구현 클래스 -> HashMap , TreeMap Hash 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수 Hashtable , HashMap (+ HashSet) 키 , 값의 형태로 데이터를 관리하는 자료구조 -> 키를 통해 데이터에 빠르게 접근 가능하다. 해싱 : 키를 특정 계산식(해시 함수)에 넣어 나온 결과를 사용하여 값에 접근하는 과정 Hashtable과 HashMap 차이 ( 키 , 값 ) = ( null , null ) Thread - safe Hash table X O ( 멀티스레드에서 좋음 ) Hash Map O X ( 싱글스레드에서 성능 좋음) -> 멀티스레드 환경을 위한..