-
코딩테스트용 프로젝트 템플릿!! 😆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 ( 싱글스레드에서 성능 좋음) -> 멀티스레드 환경을 위한..
-
백준: 최소, 최대코딩테스트 문제 풀이/백준 2023. 11. 20. 00:01
문제 내 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringTokenizer sz = new StringTokenizer(br.readLine()); int num; in..
-
배열 arrayComputer Science/자료구조 2023. 11. 20. 00:01
배열 Array 많은 수의 데이터를 다룰 때 사용 장점 각 데이터와 인덱스의 관계가 1:1 -> 접근 속도가 굉장히 빠른 이유 1 데이터가 메모리상에 연속적으로 저장됨 -> 접근 속도가 굉장히 빠른 이유 2 단점 배열의 생성시 배열의 크기를 지정해야 한다. 데이터의 추가 삭제가 번거로움 -> 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배열을 생성 -> 데이터 삭제 시 인덱스를 유지하기위해 빈 공간을 유지하기 때문에 비효율적이다. 자바에서 사용 //1. 기본 자료형 int[] arrIntegerA = new int[3]; int[] arrIntegerB = new int[]{0, 0, 0}; int[] arrIntegerC = {0, 0, 0}; arrIntegerC[2] = 0; arrInte..
-
프로그래머스 : 기능개발코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01
문제 설명 내 코드 class Solution { public static int[] solution(int[] progresses, int[] speeds) { int[] answer = {}; for (int i = 0; i < progresses.length; i++) { progresses[i] = ((100 - progresses[i]) % speeds[i] == 0) ? (100 - progresses[i]) / speeds[i] : (100 - progresses[i]) / speeds[i] + 1; } int cnt = 0; for (int i = 0; i < progresses.length; i++) { if (progresses[i] == 0) continue; cnt++; for (i..