본문 바로가기

전체 글

(177)
[코딩테스트] Java 이중 우선순위 큐 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트최댓값과 최솟값을 효율적으로 관리 및 구하기 위해 최소 힙과 최대 힙을 두개 선언하고 연산에 맞게 관리합니다.소스코드import java.util.*;class Solution { public int[] solution(String[] operations) { PriorityQueue max = new PriorityQueue(Collections.reverseOrder()); PriorityQueue min = new PriorityQueue(); ..
[코딩테스트] Java 디스크 컨트롤러 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트가장 최소의 처리량 평균 시간을 구하는 문제였습니다. 요청시간이 빠른 순대로 정렬을 하면 짧은 작업시간을 가지는 일들에 대해서는 너무 오래 기다리게 되고, 짧은 작업시간 순대로 정렬을 하면 요청이 먼저 온 작업을 처리를 하지 못하게 됩니다. 따라서 현재 시간에 따라 처리 가능한 작업을 구하고 그 중에서 요청시간이 짧은 것을 먼저 처리합니다.소스코드import java.util.*;class Solution { static class Job implements Comparable { ..
[코딩테스트] Java 더 맵게 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트최솟값을 찾기 위해 정렬을 사용해도 되지만 가장 효율적인 자료 구조 Heap을 이용하여 스코빌 지수의 최솟값을 찾도록 코드를 구현하였습니다.소스코드import java.util.*;class Solution { public int solution(int[] scoville, int K) { PriorityQueue scovilles = new PriorityQueue(); for (int level: scoville) { scovilles..
[기술면접] 네트워크 4 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁접은 글을 통해 먼저 답변을 해보시고 제가 정리한 답을 확인해보시기 바라겠습니다!!면접 리스트NAT 네트워크를 사용했을때의 사이드 이펙트는 없는가?더보기NAT 네트워크를 사용하면 사이드 이펙트가 있습니다. 기존 라우터는 4계층의 하드웨어로써 전송계층의 port 번호는 보지 못합니다. 하지만 NAT 도입시, 세그먼트에 해당하는 머신에 데이터를 주고 받기위해 포트번호를 라우터가 열람할 수 있게 되어 스푸핑이 일어나 중간자 공격이 일어날 수 있습니다. 또 NAT은 IP 주소와 포트번호를 수정하여 Transport layer의 특징인 end to end 원칙을 위..
[기술면접] 네트워크 3 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁접은 글을 통해 먼저 답변을 해보시고 제가 정리한 답을 확인해보시기 바라겠습니다!!면접 리스트여러개의 프로세스가 존재할 때 트랜스포트 레이어의 동작을 설명해보세요더보기응용 계층과 전송 계층 사이의 인터페이스 socket을 이용하여 세그먼트를 프로세스에게 전달합니다. 각 socket에는 매핑되어 있는 port 넘버가 있고, port 넘버는 호스트에서 실행중인 프로세스를 구분합니다. 이 포트 넘버를 소켓에 바인딩하고 데이터를 보낼 때에는 트랜스포트 레이어에서 제공하는 포트 멀티플렉싱을 합니다. 데이터를 받을 때에는 전송계층은 세그먼트 헤더의 대상 포트넘버를 검..
[코딩테스트] Java 다리를 지나는 트럭 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트다리를 큐로 표현해 각 트럭의 상태를 관리하며, 트럭이 다리를 건너는 동안의 시간과 다리의 무게 제한을 고려해 순차적으로 트럭을 다리에 올리고 내립니다. 반복문은 트럭이 모두 다리를 건널 때까지 계속됩니다.  소스코드import java.util.*;class Solution { static class Truck { int weight, position; public Truck(int weight) { this.weight = weight; ..
[코딩테스트] Java 주식가격 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트시간 복잡도 O(N^2)으로 잘 관리하면 문제가 패스하는 것을 확인했습니다. 하지만 시간복잡도를 줄이고 싶어 Stack을 이용하였고, O(N)의 시간 복잡도를 갖는 코드를 구현하였습니다.소스코드import java.util.*;class Solution { public int[] solution(int[] prices) { int len = prices.length; int[] ans = new int[len]; Stack stack = new Stack();..
[코딩테스트] Java 프로세스 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트프로세스의 최댓값과 그 갯수를 효율적으로 관리하는게 포인트였습니다. Map으로도 관리할 수 있고, 리스트로도 관리할 수 있겠지만저는 이 문제에서 우선순위 큐를 사용하였습니다.소스코드import java.util.*;class Solution { static class Process { int priority, index; public Process(int priority, int index) { this.priority = priority; ..