본문 바로가기

전체 글

(73)
[구름, javascript] 숫자 표현 level.goorm.io/exam/43129/%EC%88%AB%EC%9E%90-%ED%91%9C%ED%98%84/quiz/1 const fs = require('fs'); const stdin = (process.platform === 'linux' ? fs.readFileSync('/dev/stdin').toString() : `10` ).split('\n'); const input = (() => { let line = 0; return () => stdin[line++]; })(); var result = []; function dfs(current){ if(result.indexOf(current.join(','))>=0) return; if(current.length === 1) return;..
[js 기본] 프로토타입 JS는 기본적으로 프로토타입 기반 객체지향 프로그래밍 언어예요. 일단 JS는 클래스라는 개념이 없고, 프로토타입 원형을 복사하고 덧붙여서 확장해나가는 개념이예요. 상속과 유사하죠. 프로토타입 기반의 언어이기 때문에 JS 프로토타입의 개념을 잘 이해할 필요가 있어요. 모든 객체는 __proto__ 프로퍼티를 가지고 있어요. 이 것은 마치 상속과 유사해요. 모두 가지고 있죠. Prototype을 살펴 볼까요? 이 후부터는 __proto__ 프로퍼티를 [[Prototype]]으로 호칭하고, prototype은 Prototype이라고 호칭할게요. 1. Prototype function Person(name) { this.name = name; } const student = { name: 'Lee', score..
[구름, javascript] 배열 합치기 const fs = require('fs'); const stdin = (process.platform === 'linux' ? fs.readFileSync('/dev/stdin').toString() : `5 4 2 3 6 7 8 1 8 9 11`).split('\n'); const input = (() => { let line = 0; return () => stdin[line++]; })(); function solution(A, B){ let arrA = input().split(' ').map(v=>+v); let arrB = input().split(' ').map(v=>+v); console.log((arrA.concat(arrB)).sort((a, b) => a-b).join(' ')+' ..
[프로그래머스, javascript] 타겟 넘버 DFS와 BFS 풀이 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 자연수입니다. ..
[프로그래머스, javascript] 가장 긴 팰린드롬 function isPalin(s){ let length = parseInt(s.length / 2) for(let i=0; i= 0; i--){ for(let j=0; j
[프로그래머스, javascript] 여행 경로 function solution(tickets) { var routes = [] fna([], tickets); function fna(route, left){ if(left.length == 0){ let tmp = ['ICN'] route.map(v => {tmp.push(v[1])}) routes.push(tmp) return } if(route.length > 0 && route[0][0] !== 'ICN') return if(route.length >= 2&& route[route.length-2][1] !== route[route.length-1][0]) return left.map((v, i) =>{ fna([...route, v], left.filter((v,idx) => i!=idx)) ..
[js 기본] 객체 기본적으로 빈 Object는 {} 또는 Object()로 생성해요. 객체 리터럴 var person1 = { name : 'Miracle', age : 20 } console.log(person1) //output : {name: "Miracle", age: 20} 하지만 이러한 방식은 person1, person2 ... 프러퍼티만 수정하기 또한 번거롭고, *property 값만 다른 여러개의 객체를 생성하는 데에 매우 불편하죠. *property : 속성 이란 뜻으로, JS에서는 객체 내부의 속성을 의미한다. 예를 들어 person.name의 'name'가 property이다. 생성자 함수 function Person(name, gender){ var three = 3 this.name = name;..
[js 기본] 호이스팅과 변수의 생성 과정 자바스크립트의 변수는 var, let, const가 있고, 각자의 특징이 있습니다. 변수 호이스팅 function 호이스팅(){ var var_ = "I am var" console.log(var_) } 호이스팅() // output : I am var 그리고 공통점이 있는데요. 위와 같이 변수를 생성하고 나서 참조할 수 있다는 점입니다. 과연 그럴까여? function 호이스팅(){ console.log(var_) console.log(var_2) var var_ = "I am var" } 호이스팅() // output : //undefined //var_2 is not defined console.log출력 이후에 나오는 var_는 호출할 수 있었습니다(물론, undefined이지만요.). 그렇지만 ..