목록분류 전체보기 (352)
미누에요

이 문제는 읽어보면 동작 방식이 큐(queue)를 사용해야한다는 생각이 들 것이다.나는 아직 코딩 테스트 초보라 생각이 들지 않았기 때문에 무식하게 먼저 풀어보았다. const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n');const num = +input;const queue = Array.from({ length: num }, (_, i) => i + 1);let front = 0;for (let i = 1; i 1) { cards.shift(); let n = cards.shift(); cards.push(n);}console.log(+cards); 언제나 그렇듯 무식하게 풀면 시간 초과 에러가..
표현식을 평가하는 도중에 평가 결과가 확정된 경우, 나머지 평가 과정을 생략하는 것을 말한다. 'Human' && 'Animal' // "Human" 위 코드를 보면 두 문자열을 && 연산을 수행하고 있다.'Human'은 Truthy 값이므로, && 연산자 앞의 값이 true이다. AND 연산은 나머지 하나의 값에 따라 true이거나 false가 정해진다.따라서 위 값은 'Animal'에 의해 true or false가 정해진다.따라서 결과는 "Human" 이 되는 것이다. 'Human' || 'Animal'; // 'Human' 위 코드는 OR 연산을 수행한다.아까와 똑같이 'Human'을 Truthy 값으로 보면 결론적으로 true로 평가된다.그리고 OR 연산은 두 값 중 하나만 true이면 true..
타입 변환(type casting)개발자가 의도한대로 타입을 변경하는 행위를 의미한다. 명시적 타입 변환(explicit coercion) : 의도적으로 타입을 변경암묵적 타입 변환(implicit coercion) : 자바스크립트 엔진에 의해 암묵적으로 변경// 명시적 타입변환var x = 10;var str = x.toString(); // x를 문자열로 타입캐스팅console.log(typeof str, str); // string 10 명시적 타입변환은 위처럼 개발자가 의도적으로 변환을 하는 것이다. // 암묵적 타입 변환var x = 10;var str = x + ''; // 숫자(Number) + 문자(sting)을 하면 문자(string)이 된다.console.log(typeof x, x);..

이 문제는 첫번째 숫자들의 모음에 두번째 숫자들이 포함되어있는지를 출력해야하는 문제이다. 우선 이 문제도 먼저 무식하게 풀어보겠다. const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n');const numA = +input.shift();const numsA = input.shift().split(' ').map(Number);const numB = +input.shift();const numsB = input.shift().split(' ').map(Number);const compared = Array(numA).fill(0);for (let i = 0; i console.log(item)); ..

데이터 타입(Data Type) 자바스크립트의 모든 값은 데이터 타입을 갖는다. 데이터 타입은 현재 ES6기준 7개가 존재한다. 크게 원시 타입(Primitive Type)과 객체 타입(Object Type)으로 분류할 수 있다. 숫자 타입(Number)C언어의 경우 정수와 실수를 구분하여 int, float 와 같이 사용하게 되는데, 자바스크립트의 경우에는 Number로 한번에 다 작성할 수 있다.ECMAScript 사양에 따르면 Number는 배정밀도 64비트 부동소수점 형식을 따른다고 한다.(즉, 모든 수를 실수로 처리한다는 것)console.log(1===1.0) // true 추가적인 예외 값Infinity : 양의 무한대-Infinity : 음의 무한대NaN : 산술 연산 불가(not-a..

이 문제는 이전에 풀었던 좌표 정렬하기 문제에서 아주 조금만 수정하면 된다.간단한 코드이니 설명은 생략한다. 소스 코드const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n');const num = +input[0];const data = input.slice(1).map((line) => { const [x, y] = line.split(' ').map(Number); return { x, y };});data.sort((a, b) => { if (a.y === b.y) { return a.x - b.x; } return a.y - b.y;});data.forEach((point) => console..

이 문제는 팩토리얼의 결과에서 0의 개수를 구하는 문제인데, 뒤에서부터 0의 개수이다. 문제를 보자마자 조금 의심되고 그냥 단순하게 푸는 건 아닐 거 같았기에, 조금 고민을 해보았지만 잘 생각나지 않아 일단 그냥 노가다로 풀어보았다. 노가다 코드const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n');const value = +input;const facVal = factorial(value);const result = checkNumofZero(facVal);console.log(result);function factorial(n) { let result = 1; for (let i = 1; i ..

Ajax(Asynchronous Javascript and XML) Ajax는 JavaScript를 통해 브라우저가 비동기(Asynchronous) 방식으로 데이터를 교환할 수 있도록 하는 기능이다.이를 이해하기 위해 우리는 동기 방식(Synchronous)과 비동기 방식(Asynchronous) 에 대해 알아야한다. 동기 방식(Synchronous) 작업 순서가 차례대로 진행된다.하나의 작업이 완료될 때까지 기다린 후, 다음 작업을 실행한다.처리 흐름이 직선적이고 예측 가능하지만, 대기 시간이 길어질 수 있다. 일반적으로 일이 진행중일 때 기다리는 방식이다. 직관적이고 구현이 간단하다는 장점이 있지만, 작업이 오래걸릴 경우 뒤의 사람이 계속 기다려야 한다는 단점이 존재한다. 비동기 방식(Asy..

자바스크립트(JavaScript)자바스크립트는 HTML, CSS와 함께 웹 개발에서 사용되는 구성요소이다.또한 자바스크립트는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어이다. (HTML, CSS는 프로그래밍 언어가 아니다!!!!!!!!!!!)자바스크립트는 인터프리터 언어다. 인터프리터 언어(Interpreter Language)코드가 실행되는 단계인 런타입에 문 단위로 한줄씩 바이트코드로 변환 후 실행 또한 자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍 방식을 지원하는 멀티 패러다임 프로그래밍 언어이다.전통적인 객체지향 언어와는 차이가 있지만 자바스크립트는 강력한 객체지향 방식을 지원한다. 심지어 ES6부터는 class를 지원하여 더 객체지향 프로그래밍답게 코드를 작성할 수 있..

머신러닝 라이브러리머신러닝, 딥러닝 공부를 하다 보면 파이썬으로 코드를 구현하는 데 어려움을 겪는 경우가 많다.어려울 수 있는 코드 작성을 보다 쉽게 작성하도록 패키지박스(?)가 제공되고 있는데, 그것을 우리는 머신러닝 라이브러리 라고 부른다. 여러가지 머신러닝 라이브러리 중 우리는 가장 많이 사용되고 있는 텐서플로우(Tensorflow)에 대해서 알아보자.텐서플로우(Tensorflow) 구글(Google)에서 오픈소스로 공개한 머신러닝 라이브러리이다. (프레임워크라고 보는 경우도 있는 듯하다.)텐서플로우는 일반인들도 사용하기 쉽도록 다양한 기능을 제공한다. 지원 언어PythonC++GoJavaR텐서플로우를 이용하여 기존의 거의 모든 머신러닝, 딥러닝을 수행할 수 있다.말 그대로 좀 더 쉽게 코드를 작성..