본문 바로가기

분류 전체보기107

[프로그래머스] H-Index / Javascript 문제 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr TRY function solution(citations) { citations.sort((a, b) => b - a); let answers = 0; for (let i = 0; i < citations.length; i++) { if (i < citations[i]) { answers++; } } return answers; } console.log(solution([47, 42, 32, 28, 24, 22, 17, 15.. 2021. 5. 3.
[Javascript] This 정리 This Javascript에서 '나 자신' 이라는 뜻이다. 어떤 상황인지에 따라서 '나 자신'은 계속해서 바뀌고 This가 무엇인지에 따라서 의미(값)도 바뀐다. var myName = 'window name'; function log() { console.log(this.myName); } var obj = { myName: 'jasn', logName: log, }; log(); // undefined obj.logName(); // jasn 바닐라코딩 영상을 보면서 this를 정리해봤는데 처음부터 막힌 부분은 vscode에서 node를 이용해서 출력해보니 log(); 를 실행했을 때 'window name'이 아니라 계속 undefined가 나오는 것이었다. 이유를 찾아보니 node와 웹에서 전역.. 2021. 5. 2.
[프로그래머스] 가장 큰 수 / Javascript 문제 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr TRY function solution(numbers) { // 모든 number들을 string으로 바꿔주고 문자열을 그대로 연결한 수(b+a) - 바꿔 연결한 수(a+b)가 양수이면 // ex) b(3) + a(30) - a(30) + b(3) => 330 - 303 = 양수 // 3 30 순서를 그대로 유지한다. let temp = numbers.map((a) => String(a)).s.. 2021. 5. 2.
[Javascript] primitive type(기본 타입) Varaibale(변수) 변수란 변할 수 있는 값을 나타내는 말이다. 어플리케이션을 실행하게 되면 어플리케이션 마다 쓸 수 있는 메모리가 할당되어진다. let을 이용해서 myName이라는 변수를 정의하게 되면 하나의 메모리를 가르킬 수 있는 포인터가 생성된다. myName이라는 변수가 가르키는 메모리 어딘가에 변수의 값이 저장된다. 추후 메모리에 다른 값을 변경하여 저장할 수 있다. // let이라는 키워드를 이용해 myName이라는 변수를 선언하고 jasn을 할당 let myName = 'jasn'; console.log(myName); // jasn // myName에 hello라는 새로운 값을 할당하면 myName이 가르키는 메모리에 새로운 값이 저장된다. myName = 'hello!'; cons.. 2021. 5. 1.
[프로그래머스] 프린터 / Javascript 문제 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr TRY function solution(priorities, location) { // 순위 초기화 let ranking = 0; // 대기목록이 다 비워질 때 까지 while (priorities.length) { // 대기목록 첫번째 요소 배열 최대값보다 작은 경우 if (priorities[0] < Math.max(...priorities)) { // 첫번째 요소가 자신일 경우 location을 배열 마지막으로 옮김 if (--location < 0) l.. 2021. 5. 1.
[프로그래머스] 기능개발 / Javascript 문제 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr TRY function solution(progresses, speeds) { // 진행중인 작업이 0이 아닐 동안 while (progresses.length) { // 첫번 째 개발이 끝나기 까지 필요한 날짜 const needDay = Math.ceil((100 - progresses[0]) / speeds[0]); // 필요한 날짜 * 개발 속도 만큼 일을 진행시킴 const proceed = progresses.map( (progress, .. 2021. 4. 30.
[Javascript] async / defer head에 js script 삽입 순서 parsing html -> fetching js -> executing js -> parsing html 설명 browser가 한 줄 한 줄 html을 parsing(분석)을 하다가 태그를 만나면 parsing을 멈추고 server로부터 js를 fetching(가져오다) 하고 excuting(실행) 한다. 단점 js가 크면 웹사이트를 보는 데 까지 많은 시간이 소요된다. body 가장 아래에 js script 삽입 순서 parsing html -> fetching js -> executing js 설명 browser가 html을 다 parsing 한 다음 js를 fetching하고 executing 한다. js를 받기 전에도 사용자가 페이지를 볼 수 있다. 단점 .. 2021. 4. 30.
[프로그래머스] 다리를 지나는 트럭 / Javascript 문제 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr TRY function solution(bridge_length, weight, truck_weights) { // 다리배열을 다리 길이보다 하나 작게 0으로 채워서 만들고 // 마지막 요소에 첫 트럭을 넣는다 let bridge = new Array(bridge_length - 1).fill(0); bridge.push(truck_weights.shift()); // 트럭 하나가 이미 지났다고 가정해서 1초 지난 걸로 초기화 let tim.. 2021. 4. 29.
[프로그래머스] 위장 / Javascript 문제 코딩테스트 연습 - 위장 programmers.co.kr TRY const clothes1 = [ ['yellowhat', 'headgear'], ['bluesunglasses', 'eyewear'], ['green_turban', 'headgear'], ]; const clothes2 = [ ['crowmask', 'face'], ['bluesunglasses', 'face'], ['smoky_makeup', 'face'], ]; function solution(clothes) { // 옷의 종류와 종류별 갯수를 저장 할 객체 let obj = {}; for (let i = 0; i < clothes.length; i++) { // 옷의 종류가 정의 되지 않았으면 옷의 종류의 value = 1 i.. 2021. 4. 29.
[프로그래머스] 체육복 / Javascript 문제 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr TRY function solution(n, lost, reserve) { var answer = 0; // 학생 수 만큼 배열의 가지고 있는 유니폼 수를 1로 초기화 let hasUniform = new Array(n).fill(1); // 잃어버린 학생은 -1 을 해줌 for (let i = 0; i < lost.length; i++) { hasUniform[lost[i] - 1]--; } // 여벌이 있으면 +1 을 해줌 for (let i = 0; i.. 2021. 4. 28.