전체 글

전체 글

    [ 백준 14719 해설 ] ( python ) 빗물

    📚 빗물 문제 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다. 따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다. 출력 2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라. 빗물이 전혀 고이지 않을 경우 0을 출력하여라. 예제 입력 1 복사 4 4 3 0 1 4 예제 출력 1 복사 5 예제 입력 2 복사 ..

    [ 백준 14567 해설 ] ( python ) 선수과목 (Prerequisite)

    📚 선수과목 (Prerequisite) 문제 올해 Z대학 컴퓨터공학부에 새로 입학한 민욱이는 학부에 개설된 모든 전공과목을 듣고 졸업하려는 원대한 목표를 세웠다. 어떤 과목들은 선수과목이 있어 해당되는 모든 과목을 먼저 이수해야만 해당 과목을 이수할 수 있게 되어 있다. 공학인증을 포기할 수 없는 불쌍한 민욱이는 선수과목 조건을 반드시 지켜야만 한다. 민욱이는 선수과목 조건을 지킬 경우 각각의 전공과목을 언제 이수할 수 있는지 궁금해졌다. 계산을 편리하게 하기 위해 아래와 같이 조건을 간소화하여 계산하기로 하였다. 한 학기에 들을 수 있는 과목 수에는 제한이 없다. 모든 과목은 매 학기 항상 개설된다. 모든 과목에 대해 각 과목을 이수하려면 최소 몇 학기가 걸리는지 계산하는 프로그램을 작성하여라. 입력 ..

    [ 백준 11404 해설 ] ( python ) 플로이드

    📚 플로이드 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보다 ..

    [ 한 번에 모아보는 프론트엔드 면접 질문 ] JavaScript

    콜 스택과 힙에 대해서 설명해주세요 자바스크립트 엔진이 자바스크립트를 실행할 때 원시 타입 및 참조 타입을 저장하는 메모리 구조입니다 콜 스택 : 원시타입 값과 함수 호출의 실행 컨텍스트를 저장하는 곳 힙 : 객체, 배열, 함수와 같이 크기가 동적으로 변할 수 있는 참조타입 값을 저장하는 곳 어떻게 동작하나요? 맨 처음, GEC(Global Execution Context)가 생성되고 원시 값은 콜 스택에, 참조 값은 힙에 저장됩니다 그 후 함수를 실행하게 되고, 새로운 FEC(Function Execution Context)가 생성되며 동일하게 저장됩니다 함수가 결과를 return해서 저장하면 FEC는 콜 스택에서 제거됩니다. 마지막으로 전체 코드 실행이 끝나고 GEC가 콜 스택에서 제거됩니다. GEC..

    [ 백준 14502 해설 ] ( python ) 연구소

    📚 연구소 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 ..

    React는 어떻게 동작할까?_리액트가 동작하는 방식

    React의 백그라운드 React는 일단 JS의 라이브러리라는 것을 잊지 말아야 한다 React의 핵심은 컴포넌트 => React는 컴포넌트를 통해 사용자 인터페이스를 효과적으로 구성하고 업데이트한다 React DOM? 사실 React는 웹에 관심이 없다. 컴포넌트를 어떻게 다루어야 하는지에 대해서는 알고 있지만 웹에 뭘 어떻게 보여주느냐는 별로 관심이 없음 이건 React DOM이 고려할 것들 React는 가상 DOM을 사용한다. 이 가상 DOM은 컴포넌트 트리를 결정한다. 각각 하위 트리를 갖고 있는 컴포넌트들은 JEX 코드를 반환하는데, 가상 DOM은 컴포넌트 트리의 현재 모양과 최종 모양을 결정한다. => 상태가 업데이트되면 가상 DOM을 통해 상태 변화를 판단. React는 컴포넌트를 관리하고 ..

    [ SNU 강의 ] Multithreading | 쉽게 배우는 운영체제 7주차

    Multithreading Server Architecture 서버의 내부 무한루프를 도는 루프가 있다. request가 도착했을 때 깨어날 수도 있고 일정한 주기로 깨어날 수도 있다. request queue에 request message가 있으면 이를 따와서 처리하고 결과를 돌려준다 두 가지 패턴이 존재 iterative server 서버가 스스로 request를 받고 처리하는 것 concurrent server message queue에서 메세지를 따오면 서버가 직접 처리하는 것이 아니라 그 일을 처리하는 woker process를 fork해서 얘가 처리하게 하는 것 그 때 server은 service로부터 자유로워지니까 다시 request queue에서 가져오면 된다 질문 concurrent su..

    [ 백준 12851 해설 ] ( python ) 숨바꼭질 2

    📚 숨바꼭질 2 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 그리고, 가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 첫째 줄에 수빈이가 동생을 찾는 가장 빠른 시간..