CS
문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항) 1 ≤ left ≤ right ≤ 1,000 입출력 예 ) left right result 13 17 43 24 27 52 정답 코드 /** * * @param left: 시작 * @param right: 마지막 * @returns {number} * 약수의 개수: 짝수 -> + , 홀수 -> - */ function solution(left, right) { return divisor(number(left,right)); } function numbe..
문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로..
LinkedList란 연결 리스트는 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조이다. 데이터들을 갖고 있는 하나의 요소가 노드이다. 노드 속에 다음 노드를 가리키고 있다. 특히, 제일 앞에 있는 노드는 헤드(head), 제일 끝 노드는 테일(tail)이라고 부른다. head와 tail은 데이터 필드는 있지만 쓰지 않을 것이다. 단지 구현의 용이함을 위해서 사용하였는데, 만약 head와 tail의 데이터 필드를 쓰게 되면 추가, 삭제시 3가지를 고려해야한다. 1) 추가, 삭제할 노드가 맨 앞 노드인가 2) 추가, 삭제할 노드가 맨 뒤 노드인가 3) 추가, 삭제할 노드가 중간 노드인가 하지만 hea..
CPU(Central Processing Unit) : 중앙처리장치 CPU는 한마디로 표현하자면 '컴퓨터의 두뇌'와 같은 역할을 담당한다. '중앙처리장치' 라는 말 그대로 중앙에서 사용자들이 입력한 명령어를 해석하고 연산한 후 그 결과를 제어하는 역할을 담당 -> 중앙에서 모든 데이터를 처리하는 장치라는 의미 CPU를 한 줄로 표현해본다면 “연산을 위해 만들어진 수많은 트랜지스터의 집합체" CPU는 내부적으로 크게 3가지로 나눌 수 있다. 연산을 수행하는 산술논리장치(ALU) 제어 명령을 전달하는 컨트롤 장치(CU) 결과 값을 일시적으로 기억하는 레지스터(Register) 중앙처리장치의 대표적인 구성장치 제어장치(Control Unit) : 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치이다...
Stack 스택의 개념 스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 스택의 특징 스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고, top으로 정한 곳을 통해서만 접근할 수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며,삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 'push' , top을 통한 삭제하는 연산을 'pop'이라고 한다. 따라서 스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다..
컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 집합을 의미. 각 원소들사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다. 자료구조가 필요한 이유 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있다. 자료구조의 선택기준 작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 적절한 자료구조 사용이 필요하다. 따라서, 아래의 사항을 고려하여 자료를 좀 더 효율적으로 처리할 수 있도록 한다. 자료의 처리시간 자료의 크기 자료의 활용빈도 자료의 갱신정도 프로그램의 용이성..
HTTP/1.1 동작 방식 HTTP(HyperText Transfer Protocol)은 웹에서 클라이언트(웹 브라우저)가 웹 서버(httpd, nginx, etc…)와 통신하기 위한 프로토콜 중 하나이다. HTTP 1.1은 클라이언트와 서버 간의 통신을 위해 다음과 같은 과정을 거친다. HTTP/1.1은 기본적으로 Connection 한 개당 하나의 요청을 처리하도록 설계되어 있다. 이 때문에 동시에 여러개의 리소스를 주고받는 것이 불가능하고 요청과 응답이 위 그림처럼 순차적으로 이루어진다. 이런 설계 방식 때문에 HTTP 문서 내에 포함된 다수의 리소스 (image, css, script)를 처리하려면 요청할 리소스 개수에 비례하여 Latency(대기시간)이 길어진다. HTTP/1.1 단점 1. HO..
HTTP HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이다. 클라이언트-서버 프로토콜이란 (보통 웹브라우저인) 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미. 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온(fetched) 하위 문서들로 재구성된다. 클라이언트와 서버들은 (데이터 스트림과 대조적으로) 개별적인 메시지 교환에 의해 통신한다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 부르며, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 부른다. HTTP는 애플리케이션 계층의 프로토콜로, 신뢰 가..