전체 글 142

[백준] 1005번: ACM Craft (c++)

문제 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 각각 건설을 시작하여 완성이 될 때까지 Delay가 존재한다. 이번 게임에서는 다음과 같이 건설 순서 규칙이 주어졌다. 1번 건물의 건설이 완료된다면 2번과 3번의 건설을 시작할수 있다. (동시에 진행이 가능하다) 그리고 4번 건물을 짓기 위해서는 2번과 3번 건물이 모두 건설 완료되어야지만 4번건물의 건설을 시작할수 있다. 따라서 4번건물의 건설을 완료하기 위해서는 우선 처음 1번 건물을 건설하는데 10초가 소요된다. 그리고 2번 건물과 3번 건물을 동시에 건설하기 시작하면 2..

알고리즘/BOJ 2021.08.27

[vanilla JS] 2048 게임 만들기

기능 상, 하, 좌, 우 키를 사용하면 2048 게임처럼 작동 같은 숫자들끼리 더해짐 움직일때마다 랜덤한 빈 자리에 2 또는 4 생성 움직이지 못하면 게임 종료( 잘못된 방향으로 움직여도 종료되게 함 ) 뒤로가기 버튼 버튼 클릭 시 이전 값으로 돌아감( 점수도 이전 점수로 변경 ) score board 종료시 모달창 vanilla js + css 사용 restart 버튼 board 초기화 점수 초기화 score board에 점수 기입 공부한 내용 javascript DOM 조작 키보드 event 프레임워크 사용하지 않고 모달창 만들기(css 공부)

프로젝트 2021.08.26

[백준] 1987번: 알파벳 (c++)

문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www..

알고리즘/BOJ 2021.08.26

HTTP 메시지(요청, 응답)

HTTP 요청과 응답 구조는 동일합니다. 요청과 응답은 시작줄(Start Line)과 헤더(Headers)와 바디(Body)로 구성되어 있습니다. 시작줄(Start Line) 모든 Http 메시지는 시작줄(Start Line)으로 시작합니다. 요청 시작줄은 서버가 특정 동작을 취하게끔 만들기 위해 클라이언트에서 전송하는 메시지입니다. 응답 시작줄은 요청에 대한 결과가 어땠는지 알려줍니다. 요청 GET / HTTP/1.1 메서드(Method) 요청의 제일 처음 나오는 부분으로 서버에 어떤 행동을 하라는 것을 요청 하는 것인지 명시하는 부분입니다. Restful API를 사용한다면 대부분 GET은 읽기, POST는 쓰기, PUT은 업데이트 그리고 DELETE는 삭제를 의미할 것입니다. 그렇지만 이는 서버와의..

WEB 2021.08.25

[Node.js] HTTP 모듈을 사용하여 RESTful한 서버 만들기

REST REpresentational State Transfer의 줄임말이며, 서버에 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 가리킵니다. GET: 서버 자원을 가져오고자 할 때 사용합니다. 요청의 본문에 데이터를 넣지 않습니다. 데이터를 서버로 보내야 한다면 쿼리스트링을 사용합니다. POST: 서버에 자원을 새로 등록하고자 할 때 사용합니다. 요청의 본문에 새로 등록할 데이터를 넣어 보냅니다. PUT: 서버의 자원을 요청에 들어 있는 자원으로 치환하고자 할 때 사용합니다. 요청의 본문에 치환할 데이터를 넣어 보냅니다. PATCH: 서버 자원의 일부만 수정하고자 할 때 사용합니다. 요청의 본문에 일부 수정할 데이터를 넣어 보냅니다. DELETE: 서버의 자원을 삭제하고자 할 때 사용합니다. ..

Node.js 2021.08.25

[Node.js] Node.js?

Node.js란? 노드 공식 사이트에는 노드를 다음과 같이 설명하고 있습니다. Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임입니다. Node.js는 확장성이 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 특히 서버사이트에서 많이 사용되고 있습니다. 사용되는 언어로는 자바스크립트(Javascript)를 활용하며, Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있는 것이 특징입니다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능하며, 이를 통한 웹 서버의 동작에 있어 더 많은 통제에서 벗어나 여러 가지 기능을 가능하게 합니다. 자바..

Node.js 2021.08.24

[운영체제] 프로세스(프로세스 메모리, PCB)

프로세스 vs 프로그램 프로그램 자체는 생명이 없습니다. 프로그램은 보조 기억장치(하드디스크, SSD)에 존재하며 실행되기를 기다리는 명령어(코드)와 정적인 데이터의 묶음입니다. 이 프로그램의 명령어와 정적 데이터가 메모리에 적제되면 생명이 있는 프로세스가 됩니다. 즉, 프로세스란 실행중인 프로그램을 말합니다. 프로그램 컴파일한 코드와 초기화 전역변수, 문자열과 문자열 상수 등 정적 데이터를 포함하는 정적인 개체. 프로세스 프로그램 카운터나 레지스터처럼 현재 어떤 자원을 사용하는지 관련 정보가 들어있는 동적인 개체. 프로세스 메모리 구조 stack 지연변수, 매개변수, 리턴값 등 잠시 사용되었다가 사라지는 데이터를 저장하는 영역입니다. 함수 호출 시 할당되고 함수 반환 시 소멸됩니다. 로드 시(컴파일 타..

운영체제 2021.08.24

[Javascript] 참조, 얕은복사, 깊은복사

객체와 원시 타입의 근본적인 차이 중 하나는 객체는 ‘참조에 의해(by reference)’ 저장되고 복사된다는 것. 반면 원시값(문자열, 숫자, 불린 값)은 ‘값 그대로’ 저장·할당되고 복사된다. 객체를 사용할 때 주의해야할 참조, 얕은복사, 깊은복사에 대해 정리해 보려 합니다. 참조 var array = ['a', 'b', 'c']; var ref = array; ref[0] = 'd'; console.log(array); // ['d', 'b', 'c'] 객체는 다른 변수에 대입할 때 값을 복사하는 게 아니라 참조(메모리의 주소)를 복사한다. let a = {}; let b = a; // 참조에 의한 복사 console.log( a == b ); // true, 두 변수는 같은 객체를 참조합니다. ..

JavaScript 2021.08.24

[프로그래머스] 불량 사용자 (level3, c++)

문제 이벤트 응모자 아이디 목록이 담긴 배열 user_id와 불량 사용자 아이디 목록이 담긴 배열 banned_id가 매개변수로 주어질 때, 당첨에서 제외되어야 할 제재 아이디 목록은 몇가지 경우의 수가 가능한 지 return 하도록 solution 함수를 완성해주세요. 문제조건 user_id 배열의 크기는 1 이상 8 이하입니다. user_id 배열 각 원소들의 값은 길이가 1 이상 8 이하인 문자열입니다. 응모한 사용자 아이디들은 서로 중복되지 않습니다. 응모한 사용자 아이디는 알파벳 소문자와 숫자로만으로 구성되어 있습니다. banned_id 배열의 크기는 1 이상 user_id 배열의 크기 이하입니다. banned_id 배열 각 원소들의 값은 길이가 1 이상 8 이하인 문자열입니다. 불량 사용자 아..

[Javascript] 고차함수

FILTER const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present']; const result = words.filter(word => word.length > 6); console.log(result); // expected output: Array ["exuberant", "destruction", "present"] arr.filter(callback(element[, index[, array]])[, thisArg]) callback이 true로 반환한 요소로 이루어진 새로운 배열을 return한다. 호출되는 배열을 변화시키지 않는다 MAP const array1 = [1, 4, 9, 16]; // pass a..

JavaScript 2021.08.23
반응형