본문 바로가기

전체 글178

[Softeer] 금고털이 JS https://softeer.ai/practice/6288 풀이 문제에서 이해가 잘 안 가는 부분이 무게당 가격 P 이 부분이였다. 예를 들어 무게의 단위가 kg라고 한다면 무게당 가격 = 1kg당 가격이라고 볼 수 있다. 금속1: 총 무게 90kg, 1kg당 가격은 1 금속2: 총 무게 70kg, 1kg당 가격은 2 최대가격을 가방에 담아야하므로 가격이 큰 순으로 내림차순하고 더 이상 가방에 담을 수 없을 때까지 큰 가격순으로 더하면 된다 (그리디) const readline = require('readline'); const rl = readline.createInterface({ input : process.stdin, output : process.stdout }); const lines = [].. 2024. 1. 25.
[Softeer] JS 입출력 const readline = require('readline'); const rl = readline.createInterface({ input : process.stdin, output : process.stdout }); const lines = []; // input rl.on('line', input => { // 여기에서 input은 문제에 제시된 입력예시가 string형태로 한 줄씩이다 lines.push(input.split(' ').map(e => parseInt(e))) }) // output rl.on('close', () => { // 출력예시대로 출력한다 console.log() process.exit(); }) 예를 들어 A+B를 구하는 코드를 짜보자 const readline .. 2024. 1. 25.
[Softeer] 강의실 배정 JS (그리디) https://softeer.ai/practice/6291 강의가 끝나는 시간이 빠른거만 계속 고르면 된다 greedy const readline = require('readline'); const rl = readline.createInterface({ input : process.stdin, output : process.stdout }); const lines = []; rl.on('line', input => { lines.push(input.split(' ').map(e => parseInt(e))) }) rl.on('close', () => { const schedules = lines.slice(1).sort((a, b) => a[1]-b[1]); // 끝나는 시간을 기준으로, 오름차순 le.. 2024. 1. 25.
[전송계층 1] Multiplexing and Demultiplexing UDP 헤더필드 프로세스간 통신 방법 1. 어플리케이션 계층에서 전송계층으로 message 를 전달한다 2. 전송 계층은 받은 message를 segment(HEADER + DATA) 형태로 네트워크 계층에 전달한다 3. 네트워크 계층은 받은 segment를 pocket(HEADER + DATA) 형태로 데이터링크 계층에 전달한다 4. 데이터링크 계층은 받은 pocket을 frame(HEADER + DATA) 형태로 물리 계층에 전달한다 5. 물리계층에서 라우터를 타고 목적지의 물리계층에 도착한다 6. 물리계층은 받은 데이터를 frame 형태로 데이터링크 계층에 전달한다 7. 데이터링크 계층은 받은 frame을 pocket 형태로 네트워크 계층에 전달한다 8. 네트워크 계층은 받은 pocket을 segment 형태로 전.. 2024. 1. 19.
[애플리케이션 계층2] 소켓 (TCP소켓, UDP소켓) Socket은 os가 제공하는 api 중 하나이며 프로세스 간의 통신을 위한 api이다. 여러가지 function을 갖고 있다 => os 내부의 것만 사용 가능하다 => os의 transport에는 TCP, UDP가 있다 => 소켓은 두 종류가 있다 TCP 소켓 ( SOCK_STREAM ) UDP 소켓 ( SOCK_DGRAM ) bind는 서버의 특정포트를 bind한다 => 클라이언트에서 bind를 쓰지 않는 이유는, 클라이언트는 특정 포트에 관계없이 아무거나 써도 되기 때문이다. TCP 소켓 웹서버 진행 순서 1. 소켓 생성 socket() int socket(int domain, int type, int protocol) int type에 tcp/udp 입력 2. bind() 방금 생성한 소켓을 특정.. 2024. 1. 19.
[프로그래머스 LV2] 우박수열 JS https://school.programmers.co.kr/learn/courses/30/lessons/134239 문제 설명 콜라츠 추측이란 로타르 콜라츠(Lothar Collatz)가 1937년에 제기한 추측으로 모든 자연수 k에 대해 다음 작업을 반복하면 항상 1로 만들 수 있다는 추측입니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2.결과로 나온 수가 1보다 크다면 1번 작업을 반복합니다. 예를 들어 주어진 수가 5 라면 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 이되어 총 5번만에 1이 됩니다. 수가 커졌다 작아지기를 반복하는 모습이 비구름에서 빗방울이 오르락내리락하며 우박이 되는 모습과 비슷하다고 하여 우박수 또는 우박수열로 불리기.. 2024. 1. 19.