CS

    백준 : 2667-javascript

    문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각 ..

    웹사이트 렌더링은 어떻게 되는가?

    웹사이트에 접속하면 HTML, CSS, JS 파일이 전송되고, 그것을 브라우저가 읽어서 우리에게 보기 좋게 만들어 준다. 그렇다면 그 과정을 상세히 알아보자. 1. Object Model 만들기 먼저 브라우저가 HTML과 CSS 파일을 받으면 이를 각각 DOM, CSSOM으로 변환한다. DOM은 이전에 알아본 것처럼 HTML의 요소들을 트리구조로 만든 것이다. CSSOM은 CSS Object Model로 CSS의 DOM이라고 할 수 있다. 이 때 중요한 것은 DOM과 CSSOM은 서로 독립적인 데이터 구조라는 것이다. 2. 렌더링 트리 생성 하지만 완전 별개의 DOM과 CSSOM으로는 홈페이지를 보여줄 수 없다. 따라서 이 별개의 모델을 서로 합쳐줘야 한다. 이때 이둘은 DOM을 기준으로 태그에 맞는 C..

    백준-1012-javascript

    https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어,..

    git flow-다른 fork에서 fetch merge하기

    여러 명과 git flow를 이용해 협업을 하면, 다른 사람이 작업한 작업물을 내 fork로 가져와 최신화를 시켜주어야 한다. 만약 develop을 최신화 하고 싶다면 % git fetch upstream devlop 으로 fetch를 진행해준다. 그 다음 % git merge FETCH_HEAD 를 진행해주면 된다. FETCH_HEAD 는 가장 최신 상태를 의미한다. release가 완료된 main을 최신화 할 경우 % git fetech upstream main % git merge FETCH_HEAD 으로 진행한다. 위 두 경우 모두 로컬에서 진행되는 것이기 때문에 머지한 후에는 remote로 push를 하는 것이 좋다.

    백준-1026-javascript

    https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을..

    javascript로 백준 문제 풀기-input

    백준에서 javascript로 문제를 풀 때 input을 조금 특이하게 사용한다. readline과 require('fs') 둘 다 사용가능 하지만, 실행시간의 차이 때문에 require('fs')를 강력 추천한다. require('fs') 모든 입력 값을 하나로 받는다. 따라서 여러 줄을 입력 받으면 split 등으로 한 줄씩 저장해야 한다. 실행 시간이 짧아서 주로 사용된다. 한 줄만 받을 경우 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString(); // 한줄로 사용할 경우 let input = require('fs').readFileSync("/dev/stdin").toString(); 여러 줄을 받고 한 줄씩 나눌..

    OSI 7계층이란?

    OSI 7계층은 국제표준화기구(ISO)에서 만든 네트워크 전역을 7개의 계층으로 설명하는 모델이다. 7 계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 이루어져 있다. 1. 물리 계층 물리 계층은 케이블이나 여러 물리적인 방법으로 정보를 0과 1로 전송한다. 따라서 실질적으로 굉장히 복잡한 단계로 뽑힌다. 단순 정보 전달이 가장 중요한 단계로, 오류 제어를 하지는 않는다. 2. 데이터 링크 계층 point to point 에서 신뢰성있는 전송을 보장하기 위한 계층이다. 따라서 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 이 때 주소 값은 물리적인 MAC 주소를 사용한다. 3. 네트워크 계층 네트워크 계층은 IP 주소를 부여받는 단계이다. 네..

    프로그래머스-구명보트

    https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 ..