[백준] Gold IV. 케이크 자르기
·
Algorithm/백준
https://www.acmicpc.net/problem/17179  문제생일을 맞이한 주성이가 생일 파티를 준비하려고 한다. 주성이는 일반 케이크 대신 평소 좋아하던 롤 케이크를 준비했다. 롤 케이크에는 장식이 존재해서 특정 위치에서만 자를 수 있다. 주성이는 롤 케이크 조각을 파티에 올 친구의 수 만큼 준비하고 싶어서, 가장 작은 조각의 크기를 미리 알아보기로 했다. 하지만 짓궂은 주성이의 친구들은 생일파티에 몇 명이 참석하는지 직접적으로 알려주지를 않는다. 그래서 몇 개의 수를 목록에 적어, 각 수만큼 조각을 만들었을 때 가장 작은 조각의 길이의 최댓값을 구하려고 한다.예를 들어 70cm의 롤 케이크에 자를 수 있는 지점이 5군데(10cm, 20cm, 35cm, 55cm, 60cm)가 있다고 하자...
3주차 면접 스터디
·
카테고리 없음
3-way handshake와 4-way handshake를 설명해주세요.3-way handshake에 대해서 설명해주세요TCP/IP 과정에서 패킷의 유실 없는 안전한 통신을 위하서 통신 하기전에, 서버가 데이터를 받을 준비가 되어있나 사전 체크를 진행합니다. 클라이언트와 서버는 3번의 패킷을 주고받으며 체크를 하기 때문에 3-way handshake라고 합니다. 과정에 대해 설명해주세요.처음에 서버는 LISTEN 상태로 대기해서 클라이언트의 요청을 받을 준비를 합니다.클라이언트는, 서버쪽으로  Syn 패킷을 전달하고 이를 받은 서버는 다시 Syn, Ack를 클라이언트에게 전달합니다.무사히 전달받은 클라이언트는 Establish 상태로 전환하고, 그 응답을 서버쪽에도 전달해 서버도 Establish상태로..
운영체제 3주차 과제
·
CS/운영체제
CPU 스케줄링에 대해 설명해주세요.운영체제가 프로세스들에게 효율적으로 CPU 자원을 배분하는 것을 말합니다.  스케줄러의 종류는 무엇이 있나요?스케줄러의 종류는 단기, 중기, 장기 스케줄러가 있습니다. 단기 스케줄러어떤 프로세스를 다음번에 실행시킬 지 결정하는 스케줄러 입니다. 어떤 프로세스에 CPU를 할당해줄 지 결정하고, 이 과정은 millisecond 단위로 매우 빠릅니다.프로세스의 상태: Ready -> Running -> Waiting -> Ready장기 스케줄러시작(new) 프로세스 중 어떤 것들을 ready queue로 보낼지 결정하는 스케줄러 입니다. 어떤 프로세스에 메모리를 할당해 줄 지 결정합니다. 위 그림에서 admitted가 되고 나서야, ready queue로 프로세스가 이동합니..
2주차 면접 스터디
·
CS/면접스터디
DFS와 BFS에 대해서 설명해주세요 DFS스택 자료구조와 재귀를 사용하여 깊이 우선 탐색을 진행합니다.  DFS를 진행하며 얻은 결과값이 최단 경로라는 보장이 없습니다. 각 노드를 방문하는 순서에만 집중하며 경로의 길이는 고려하지 않습니다. 그 이유는 깊이를 우선적으로 탐색하기 때문에 특정 경로를 끝까지 탐색한 후에 탐색할 수 없는 경우에 다른 경로를 탐색하는데, 그 과정에서 해당 경로의 길이가 최단 거리임을 알 수 없습니다.인접 행렬로 구현한 경우, 시간 복잡도는 O(N^2)이고, 인접 리스트인 경우 해당 정점에 연결되어 있는 간선의 갯수만큼 탐색을 진행하므로 O(N+E), N: 정점의 갯수, E: 간선의 갯수 입니다.각각의 경로마다 특징을 저장해둬야 할 때는 DFS가 BFS보다 유리합니다. -> w..
OSI 7계층, TCP, UDP
·
CS/네트워크
OSI 계층컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것  쉽게 이야기 해서, 네트워크에서 통신이 일어나는 과정을 7단계로 나누어 설명한 것입니다. 현재는 많은 프로토콜이 TCP/IP 기반으로 동작하고 있습니다. 프로토콜프로토콜이란, 메세지를 주고받는 양식이나 규칙을 의미합니다. 상대방이 특정 메세지를 보낼 때, 반대쪽도 그 메세지를 이해하고 답을 보낼 수 있어야 합니다. 프로토콜은 이에 대한 규칙을 정의하고 있습니다. 이전에는, 각 회사마다 다양한 프로토콜이 존재해 특징도 많이 달랐기 때문에 소통하는데 제약조건이 있었습니다. 현재는, 여러가지 프로토콜이 이더넷-TCP/IP 기반 프로토콜로 변경되고 있습니다.   1계층 (Physical Layer)물리 계층으로 물리적 연결과 관련된..
1주차 면접 스터디
·
CS/면접스터디
DispatcherServlet 의 역할에 대해 설명해 주세요. 공식 설명 Central dispatcher for HTTP request handlers/controllers, e.g. for web UI controllers or HTTP-based remote service exporters. Dispatches to registered handlers for processing a web request, providing convenient mapping and exception handling facilities. 등록된 핸들러에 붙어 웹 리퀘스트, 편리한 매핑, 그리고 exception을 핸들링 해준다고 합니다.HTTP 프로토콜로 들어오는 모든 요청을 먼저 받아서 적합한 컨트롤러에 위임을 해주..
운영체제 2주차 과제
·
CS/운영체제
📌  프로세스와 쓰레드📎 프로세스프로그램의 실행 과정어떤 프로그램을 실행시키게 되면, 해당 프로그램에 해당하는 주소공간이 생성됩니다.이 주소 공간은 code, data, stack 영역으로 구성되어 있고 해당 영역의 이름은 Virtual Memory라고 부릅니다. 물리적 메모리인 Physical Memory에는 주소 공간의 모든 데이터 정보가 저장되지 않고 필요한 정보만 저장됩니다. + Virtual Memory에서 Physical Memory로 주소 변환을 해주는 계층은 어디일까요? (네트워크 질문)  커널 주소 공간의 내용code운영체제는 인터럽트가 들어올 때 CPU를 얻습니다.자원에 관련된 코드편리한 서비스 제공을 위한 코드시스템콜, 인터럽트 관련 코드data하드웨어, PCB..stack사용자 ..
운영체제 1주차 과제
·
CS/운영체제
운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요. 운영체제는 커널 영역에 위치해 실행하려는 프로그램을 사용자 영역 메모리에 효율적으로 적재하고, 불필요한 프로그램을 메모리에서 삭제하며 메모리 자원을 효율적으로 관리합니다. 그 뿐만 아니라, 사용자에게 컴퓨터 시스템을 편리하게 활용할 수 있는 환경을 제공합니다. 시분할 시스템에 대해서 설명해주세요. 여러 작업을 실행할 때, 컴퓨터 처리 능력(CPU)를 일정한 시간 단위로 분할하여 사용하는 것을 말합니다. 시분할 시스템을 도입함으로써 인해 우리가 컴퓨터에게 요청을 보낼 시 응답이 즉각적으로 옵니다. (interactive) 다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요. 메모리에 여러 프로그램이 동시에 올라..
[프로그래머스] Lv.3 합승 택시 요금
·
Algorithm/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사용 알고리즘최단 경로다익스트라플로이드 와샬 풀이 다익스트라import java.util.*;// 4번에서 출발해서 A와 B까지 도달하는 최단경로 노드를 찾는다.// class Solution { static final int INF = Integer.MAX_VALUE / 2; static List> graph = new ArrayList(); public int solution(in..
[백준] Gold IV. 여행 가자
·
Algorithm/백준
https://www.acmicpc.net/problem/1976   사용 알고리즘DFS유니온 파인드 풀이 DFSimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.StringTokenizer;public class Main { /* 1. 여행 계획 처음부터 BFS를 돌리면서 체크 */ static int n, m; static List> graph = n..