본문 바로가기

전체 글221

[알고리즘] 3-2 공통원소 구하기 - two pointers 알고리즘(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/03-02 문제 설명 : 정수형 배열 두개가 주어졌을 때, 두 배열의 교집합을 구해 오름차순으로 정렬해 출력하는 문제 풀이 주어진 두 배열을 오름차순으로 정렬하고 two pointers 알고리즘을 사용하여 풀이 강의 풀이도 내 풀이 방식과 동일 package inflearn.tow_pointers_sliding_window; import java.io.BufferedReader; import java.io.IOException; import jav.. 2021. 5. 22.
[자바] 직렬화(Serialization) - Serializable, ObjectInputStream, ObjectOutputStream, Transient, serialVersionUID 직렬화란? 직렬화란 객체를 데이터 스트림으로 만드는 것이다. 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것이다. 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것은 역 직렬화(deserialization)라고 한다. 객체는 클래스 변수나 메서드가 포함되지 않는 인스턴스 변수의 집합이다. 그렇기 때문에 객체를 저장한다는 것은 인스턴스 변수의 값을 저장한다는 것과 같다. 저장했던 객체를 다시 생성하려면, 객체를 생성하고 저장했던 값을 읽어서 인스턴스 변수에 저장하면 된다. 이러한 과정이 프리미티브 타입의 기본형 변수라면 간단할 것 같지만, 배열이나 참조형 같은 경우에는 간단하지 않을 것 같다. 하지만, ObjectInputStream, ObjectOutputStream을 사용.. 2021. 5. 22.
[알고리즘] 3-1 두 배열 합치기, two pointers 알고리즘(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/03-01 문제 설명 : 오름차순으로 정렬된 두 배열이 주어졌을 때, 두 배열을 오름차순으로 합쳐 출력 내 풀이 두 배열을 합쳐 퀵정렬을 사용하는 Arrays.sort() 메서드로 정렬하여 출력 퀵정렬의 시간 복잡도는 O(nlogn) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; imp.. 2021. 5. 21.
[알고리즘] 2-12 멘토링 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-12 문제 설명 : m번의 수학 시험에서의 학생 n명 각각의 등수가 주어졌을 때 멘토 멘티 짝이 되는 경우의 수를 출력 멘토 조건 : 멘티보다 모든 시험의 등수가 앞서야한다. 풀이 4중 for문을 사용하여, 멘토 멘티가 되는 모든 경우의 수를 돌며 모든 시험에서 멘토가 등수가 높은 경우의 수를 카운트한다. package inflearn.array; import java.io.BufferedReader; import java.io.IOException; import java.io.. 2021. 5. 20.
[알고리즘] 2-11 임시반장 정하기 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-11 문제 설명 : 학생 중에서 1학년부터 5학년까지 지내오면서 한 번이라도 같은 반이었던 사람이 가장 많은 학생을 임시 반장으로 정하는 문제. 입력 : 학생 숫자 n, n명의 학생이 1~5학년 각각 몇반이었는지 출력 : 같은 반이었던 사람이 가장 많은 학생의 번호 내 풀이 package inflearn.array; import java.io.BufferedReader; import java.io.IOException; import java... 2021. 5. 19.