Programmers 36

방문 길이 ( Level 2, JavaScript, Summer/Winter Coding )

방문 길이 ( Level 2 ) Summer/Winter Coding ~2018 ( JavaScript ) 문제 링크 나의 풀이 function solution(dirs) { const arr = [] let cur = [0,0] for ( let i = 0; i = -4 ) { cur[0] -= 1 arr.push([cur[0] + 0.5, cur[1]]) } break; case "R": if ( cur[0] ''+el))].length } [0, 0] -> [0, 1] 과 [1, 0] -> [0, 0]이 동일한 경로로 이동하기 때문에 이를 구분짓기 위해서 움직이는쪽의 좌표를 평균값..

스킬트리 ( Level 2, JavaScript, Summer/Winter Coding )

스킬트리 ( Level 2 ) Summer/Winter Coding ~2018 ( JavaScript ) 문제 링크 나의 풀이 function solution(skill, skill_trees) { let count = 0; const arr = skill_trees.map( s => s.split('').map( e => skill.includes(e) ? e : '').join('') ) for ( let i = 0; i < arr.length; i++ ) { if ( arr[i] === '' ) count++ let temp = -1; for ( let j = 0; j < arr[i].length; j++ ) { if ( skill.indexOf(arr[i][j]) !== temp + 1 ) { b..

영어 끝말잇기 ( Level 2 , JavaScript, Summer/Winter Coding )

영어 끝말잇기 ( Level 2 ) Summer/Winter Coding ~2018 ( JavaScript ) 문제 링크 나의 풀이 function solution(n, words) { for ( let i = 1; i < words.length; i++ ) { if ( words[i-1].slice(-1) !== words[i][0] || words.slice(0,i).includes(words[i]) ) return [i % n + 1, parseInt(i / n) + 1] } return [0, 0] } 이전 단어의 끝 알파벳과 현재 단어의 첫 알파벳이 일치하는지 확인 현재 단어가 이전에 나온 적이 있는지 확인 탈락하는 사람의 번호와 몇 번째로 탈락하는지 리턴 조건에 걸리지 않고 반복문이 끝난다면 ..

예산 ( Level 1, JavaScript, Summer/Winter Coding )

예산 ( Level 1 ) Summer/Winter Coding ~2018 ( JavaScript ) 문제 링크 나의 풀이 function solution(d, budget) { const arr = d.sort((a,b) => a-b) let i = 0; while ( budget >= 0 ) { if ( arr[i] === undefined ) return i else if ( budget === arr[i] ) return i+1 else if ( budget < arr[i] ) return i budget -= arr[i] i += 1 } } d를 오름차순으로 정렬한다. budget에서 arr[i]의 값을 빼주며 0이 될때까지 반복문을 돈다. budget - arr[i]이 0이 되었거나, 0보다 ..

소수 만들기 ( Level 1, JavaScript, Summer/Winter Coding )

소수 만들기 ( Level 1 ) Summer/Winter Coding ~2018 ( JavaScript ) 문제 링크 나의 풀이 function solution(nums) { const arr = [] const isPrime = n => { for ( let i = 2; i isPrime(el)).length; } 숫자 세 개의 합을 담는 arr을 선언한다 숫자가 소수인지 판별하는 isPrime 함수를 만든다 for문 세개를 중첩해 세 개의 합을 arr에 담는다 arr중 소수만 남긴 후에 배열의 길이를 리턴

게임 맵 최단거리 ( Level 2, JavaScript, 찾아라 프로그래밍 마에스터 )

게임 맵 최단거리 ( Level 2 ) Programmers 찾아라 프로그래밍 마에스터 ( JavaScript ) 문제 링크 나의 풀이 function solution(s) { const dx = [0,0,1,-1]; const dy = [1,-1,0,0]; const queue = [[0,0,1]]; while ( queue.length ) { const cur = queue.shift(); if ( cur[0] === maps.length - 1 && cur[1] === maps[0].length - 1) return cur[2] for(let i=0;i= 0 && yy >= 0 && xx < maps[0].length && yy < maps.length && maps[yy][xx] === 1 ) {..