본문 바로가기

반응형

Algorithm

(66)
Set<E> vs Map<K,V> Set은 중복을 허용하지 않고 Null값은 1개를 허용하고 순서를 보장하지 않는다. Map은 key 중복은 허용하지 않고 value중복은 허용하며 Null값은 key값의 경우 1개, value의 경우 여러개를 허용하고 마찬가지로 순서를 보장하지 않는다. *Set 타입 메소드 설명 boolean add(E e) 데이터를 set에 추가한다. boolean contains(Object o) 데이터가 있는지 확인한다. boolean remove(Object o) 데이터를 제거한다. ex) HashSet, LinkedHashSet, TreeSet, SortedSet import java.io.*; import java.util.*; import java.util.Map.Entry; public class Main..
백준 11720 / 숫자의 합 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 num = Integer.parseInt(br.readLine()); String line = br.readLine(); int res=0; for(int i=0;i
백준 10989 / 수 정렬하기 3 1. int[] 배열 이용 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); int[] list = new int[10000]; StringBuilder sb = new StringBuilder(); for(int i=0;i
백준 11652 / 카드 int 32bit ( 4byte ) -2^31 ~ 2^31 -1 long 64bit ( 8byte ) -2^63 ~ 2^63-1 카드에 적혀 있는 수가 -2^62보다 크고 2^62보다 같거나 작다고 했으므로 long의 범위를 사용할 것!!! 1. Map을 이용하기 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parse..
백준 10814 / 나이순 정렬 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); String line=""; List list = new ArrayList(); String[][] array = new String[num][2]; for(int i=0;i
백준 11650 / 좌표 정렬하기 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); List list = new ArrayList(); for(int i=0;i
StringTokenizer vs Split StringTokenizer String StringTokenizer(String str) white space, new line, tab 등을 기준으로 token을 나눈다. String StringTokenizer(String str, String delim) delim을 기준으로 token을 나눈다. String StringTokenizer(String str, String delim, boolean flag) flag가 true이면 delim도 token으로 포함해서 나눈다. flag가 false이면 delim은 token으로 포함하지 않는다. (default) boolean hasMoreTokens() token이 더 있는지 확인 boolean nextToken() 다음 token 반환 Objec..
BufferedReader 백준 2751 수 정렬하기 2 문제를 풀던 중, 100만개의 데이터를 정렬할 때, Collections.sort(list)에 문제점이 있나 확인하면서 찾았지만, 정렬이 문제가 아닌 데이터를 읽는 시간이 문제였다. Scanner로 읽으면 성능이 매우 떨어져서 시간초과가 났는데 BufferedReader로 데이터를 읽었을 때 성공했다. BufferedReader는 무엇인지 빠른 성능으로 입력을 받을 때 어떤 라이브러리를 사용하는지 확인해본다. 1.1 입출력이란? I/O란 Input과 output의 약자로 입력과 출력, 간단히 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 1.2 스트림(Stream) 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다..

반응형