Etc/Algorithm53 [자료 구조] 스택(Stack)과 큐(Queue) 보호되어 있는 글 입니다. 2022. 7. 24. [Algorithm] 재귀(Recursive Function) 보호되어 있는 글 입니다. 2022. 7. 21. [Java] 백준 10828번: 스택 첫 번째 시도 런타임 에러(ArrayIndexOutOfBounds) ❓ next()와 nextLine() 차이 💡 next() : 공백 이전까지 입력받은 문자열을 반환 nextLine() : Enter 이전까지 입력받은 문자열을 반환 때문에 next()를 사용하면 공백 이전까지 입력을 받으므로 'push X'를 입력했을 때 push까지 입력을 받았다 두 번째 시도 시간 초과 ❓ Scanner와 BufferedReader의 특성 💡 이 문제는 시간 제한이 0.5초이다 InputStreamReader : 문자열을 한 글자 단위로 읽기 때문에 긴 문자열을 읽는 데에 비효율적이다 BufferedReader: InputStreamReader + 버퍼링 기능을 추가 / 라인 단위로 입력을 받음 / 공백 인식 일정한.. 2022. 7. 11. [JAVA] 백준 11399번: ATM import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ArrayList list = new ArrayList(); int sum = 0; int stay = 0; for (int i = 0; i < n; i++) { list.add(sc.nextInt()); } Collections.sort(list); for(int i = 0 ; i < n; i++) { sum += list.get(i); stay += sum; } System.out.println(stay); } } 2022. 6. 28. [JAVA] 백준 2751번: 수 정렬하기 2 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있다 💡 1. Colletions.sort()를 사용한다 시간 복잡도 O(n) ~ O(nlogn)을 보장한다 단, 배열 대신 리스트를 사용해야 한다 2. StringBuilder를 사용한다 String과 문자열을 더할 때 새로운 객체를 생성하지 않고 기존 데이터에 더하는 방식이다 속도가 빠르고 부하가 적다 import java.util.*; public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ArrayList list.. 2022. 6. 27. [JAVA] 백준 2752번: 세수정렬 💡 해결 방법 숫자가 최대 1,000,000개가 주어지는데 시간 제한이 1초인 문제이다 시간 복잡도가 O(N * logN)이어야 하므로 퀵 정렬을 사용했다 🛑 주의 시간 복잡도 O(N * logN)를 요구하는 문제에서 최악의 복잡도가 존재하는 퀵 정렬을 사용할 경우 일반적으로 오답으로 처리된다 다른 해결 방법이 있는지 탐색할 것! import java.util.*; public class Main { public static void quickSort(int[] data, int start, int end) { if (start >= end) { //원소가 1개일 때 return; } int pivot = start; //pivot은 첫 번째 원소 int i = start + 1; int j = end;.. 2022. 6. 26. 이전 1 2 3 4 5 6 7 8 9 다음