전체 글333 [Java] Collection (컬렉션) 정리 컬렉션 프레임워크(collection framework) 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다. 컬렉션 인터페이스 Collection 인터페이스는 List,Set,Queqe로 크게 3가지 상위 인터페이스로 분류 할 수 있다. List,Queue,Set은 Collection 인터페이스를 extends(확장)한 인터페이스이다. Map은 Collection 인터페이스를 상속받고 있지 않지만 Colle.. 자바/++ 2022. 12. 4. [Java] 나눗셈 나눗셈을 할때, 반올림을 할때 형변환을 주의해야한다. bw.write(-9/5+"\n"); 의 결과는 -1이다. 정수와 정수의 나눗셈은 정수로 나오기 마련이다. double answer = -9/5; answer에는 어떤값이 담겼을까? -9/5의 결과가 -1이므로 결국 answer의 담긴값은 -1.0이 된다. 나눗셈의 결과로 소숫점을 얻고싶다면 형변환을 해야한다. (float) 또는 (double) 을 분모 또는 분자에 붙여주거나 bw.write((double)-9/5+"\n"); bw.write((float)-9/5+"\n"); 결과 : -1.8 정수.0 과같이 실수화 하면된다. double answer = -9 / 5.0; System.out.println("answer = " + answer); 반.. 자바/++ 2022. 12. 4. [Java] HashMap Map 인터페이스를 구현한 대표적인 Map 컬렉션, Map인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고있다. Map은 키와 밸류값으로 구성된 자료구조이고 키와 밸류값은 모두 객체이다. 값은 중복될 수 있지만 키는 중복 될 수 없다. 기존에 저장된 키와 동일한 키을 넣으려고하면 기존의값은 없어지고 새로운값으로 대체된다. HashMap은 해시함수를 통해 키와값이 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수없고, 삽입되는 순서와 들어 있는 위치 또한 관계가 없다고한다. HashMap 선언 HashMap map = new HashMap(); // 기본적인 HashMap 생성방법 HashMap map2 = new HashMap(10); // 초기용량을 지정가능 HashMap map3 = n.. 자바/자료구조 2022. 12. 4. 백준/2108 통계학 통계학 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 118444 25940 20924 25.389% 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정.. 자바/알고리즘 문제 풀이 2022. 12. 4. 백준/10989 수 정렬하기 3 수 정렬하기 3 시간 제한메모리 제한제출정답맞힌 사람정답 비율 5 초 (하단 참고) 8 MB (하단 참고) 203593 47199 35651 23.477% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 복사 1 1 2 2 3 3 4 5 5 7 풀이 1. 실패 -> 수 정렬하기 2에서 썼던코드가 통과할거같아서 시도해보았지만 메모리초과로 실패하였다.. 자바/알고리즘 문제 풀이 2022. 12. 3. 백준/2751 수 정렬하기 2 수 정렬하기 2 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 226499 65082 45252 30.451% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 5 5 4 3 2 1 예제 출력 1 복사 1 2 3 4 5 풀이 오름차순으로 정렬하는 간단한 문제같지만 주어지는 수의 개수의 최대값이 백만이나 된다. O(n^2)의 시간복잡도를 가지는 코드라.. 자바/알고리즘 문제 풀이 2022. 12. 3. 백준/25305 커트라인 커트라인 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 1024 MB 11008 7124 6605 66.329% 문제 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N$N$명의 학생들이 응시했다. 이들 중 점수가 가장 높은 k$k$명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라. 커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다. 입력 첫째 줄에는 응시자의 수 N$N$과 상을 받는 사람의 수 k$k$가 공백을 사이에 두고 주어진다. 둘째 줄에는 각 학생의 점수 x$x$가 공백을 사이에 두고 주어진다. 출력 상을 받는 커트라인을 출력하라. 제한 1≤N≤1000$1 ≤ N ≤ 1\,000$ 1≤k≤N$1 ≤ k ≤ N$ .. 자바/알고리즘 문제 풀이 2022. 12. 3. [Java] Split 메소드 문자열 자르기 String[] split(String regex) split함수는 입력받은 정규표현식 또는 특정문자를 기준으로 문자열을 나누어 배열에 저장하여 리턴한다. 정규표현식 개념 -> https://hbase.tistory.com/160 String temp = "010-1234-5789-1111"; String[] result = temp.split("-"); for (String currentString : result) { bw.write(currentString+"\n"); } 문자열을 "-"를 기준으로 나누고 나눈 문자열들을 배열에 넣어서 리턴해준다. 문자열배열을 출력해봤을때 저장된 값들은 다음과 같다. String[] split(String regex,int limit) 기준 문자말고 받을 수 있는 .. 자바/++ 2022. 12. 3. 백준/2587 대표값2 대표값2 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 15445 9827 9082 64.673% 문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다. 평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면 10 30 30 40 60 이 되고 따라서 중앙값은 30이 된다. 다섯 개의 자연수가 주.. 자바/알고리즘 문제 풀이 2022. 12. 3. 백준/2750 수 정렬하기 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 5 5 2 3 4 1 예제 출력 1 복사 1 2 3 4 5 풀이 중복없는 숫자배열을 받은 후 정렬메소드를 이용하여 정렬해서 출력해준다. public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static Buf.. 자바/알고리즘 문제 풀이 2022. 12. 3. [Java] ArrayList, LinkedList ArrayList ArrayList는 배열을 기반에 두고있다. 장점 : 인덱스를 통한 데이터의 삽입,삭제,조회가 편하다. 단점 : 데이터의 추가,삭제가 느리다. get / set ArrayList는 조회 또는 값설정할때 시간복잡도는 O(1) 이다. 배열의 인덱스를 통해 접근하는 방식이므로 속도가 빠르다. ArrayList.add(data) List numbers = new ArrayList(); numbers.add(5); numbers.add(2); 맨뒤에 데이터가 추가된다. 시간복잡도는 O(1)이다. ArrayList.add(index,data) numbers.add(0, 11); 원하는 인덱스에 데이터를 삽입한다. 특정 인덱스에 데이터를 삽입하게되면 그 뒤에 요소들은 하나씩 뒤로 이동시켜주는 작업이.. 자바/자료구조 2022. 12. 3. Collections.sort() 와 Arrays.sort() 시간복잡도, 사용법 Collections.sort() 시간복잡도 평균 : O(NlogN) 최악 : O(NlogN) 내부 알고리즘 : Timsort(삽입+병합 정렬) Arrays.sort() 시간복잡도 평균 : O(NlogN) 최악 : O(N^2) 내부 알고리즘 : DualPivotQuicksort Collections.sort() 사용법 public static void main(String[] args)throws IOException { List numbers = new ArrayList(); numbers.add(5); numbers.add(2); numbers.add(1); numbers.add(4); Collections.sort(numbers); bw.write(numbers.toString()); bw.flus.. 자바/++ 2022. 12. 3. 이전 1 ··· 21 22 23 24 25 26 27 28 다음