javascript 49

코딩테스트를 위한 JavaScript 알고리즘

bfsstart - [x, y, time]end - [x, y]board - 이차원 배열 (O - 이동 가능 / X - 불가능)visited - 방문 기록 (방문 확인 1 / 미방문 0)start에서 end까지 가는 시간 계산시작시간은 start의 세번째 인자 기준으로 도달하지 못하는 경우 -1const bfs = (start, end, board) => { const dx = [-1, 1, 0, 0] const dy = [0, 0, -1, 1] const visited = Array.from({ length: board.length }, () => Array(board[0].length).fill(0)) visited[start[0]][start[1]] = 1 const qu..

Algorithm/theory 2025.01.27

행렬 테두리 회전하기 ( Level 2, JavaScript, 2021 Dev-Matching )

행렬 테두리 회전하기 ( Level 2 ) 2021 Dev-Matching: 웹 백엔드 개발자(상반기) ( JavaScript ) 문제 링크 나의 풀이 function solution(rows, columns, queries) { const arr = Array(rows).fill(1) .map((el, i) => Array(columns).fill(el + i * columns) .map((a, i) => a + i) ) const res = [] while ( queries.length ) { const query = queries.shift(); let num = []; for ( let i = query[1]; i < query[3]; i++ ) num.push(arr[query[0]-1][i-1..

로또의 최고 순위와 최저 순위 ( Level 1, JavaScript, 2021 Dev-Matching )

로또의 최고 순위와 최저 순위 ( Level 1 ) 2021 Dev-Matching: 웹 백엔드 개발자(상반기) ( JavaScript ) 문제 링크 나의 풀이 function solution(lottos, win_nums) { let count = 0, zero = 0; for ( let i = 0; i < lottos.length; i++ ) { if ( win_nums.includes(lottos[i]) ) count ++ if ( lottos[i] === 0 ) zero++ } if ( !count && !zero ) return [6,6] return [Math.max(7-count-zero, 1), Math.min(7-count, 6)] } 0과 이외의 숫자 개수를 센 뒤 등수 계산

Programmers Level 2 연습문제모음 ( JavaScript )

Level 2 연습문제 ( JavaScript ) 작성한 코드보다 더 좋은 코드가 있음을 미리 알려드리며, 코드의 해설이 필요하신 분은, 댓글 남겨주시면 적어놓겠습니다. 목차 N개의 최소공배수 JadenCase 문자열 만들기 행렬의 곱셈 피보나치 수 최솟값 만들기 최댓값과 최솟값 숫자의 표현 땅따먹기 다음 큰 숫자 올바른 괄호 124 나라의 숫자 풀이 1. N개의 최소공배수 function solution(arr) { const gcd = (a, b) => b ? gcd(b, a % b) : a return arr.reduce((a, b) => a * b / gcd(a, b)) } 2. JadenCase 문자열 만들기 function solution(s) { return s.split(' ').map(a..

Programmers Level 1 연습문제모음 ( JavaScript )

Level 1 연습문제 ( JavaScript ) 작성한 코드보다 더 좋은 코드가 있음을 미리 알려드리며, 코드의 해설이 필요하신 분은, 댓글 남겨주시면 적어놓겠습니다. 목차 직사각형 별찍기 x만큼 간격이 있는 n개의 숫자 행렬의 덧셈 핸드폰 번호 가리기 하샤드 수 평균 구하기 콜라츠 추측 최대공약수와 최소공배수 짝수와 홀수 제일 작은 수 제거하기 정수 제곱근 판별 정수 내림차순으로 배치하기 자연수 뒤집어 배열로 만들기 자릿수 더하기 이상한 문자 만들기 약수의 합 시저 암호 문자열을 정수로 바꾸기 수박수박수박수박수박수? 소수 찾기 서울에서 김서방 찾기 문자열 다루기 기본 문자열 내림차순으로 배치하기 문자열 내 p와 y의 개수 문자열 내 마음대로 정렬하기 두 정수 사이의 합 나누어 떨어지는 숫자 배열 같은..

30. Whack A Mole ( JavaScript30 )

Whack A Mole 목표 두더지잡기 게임 만들기 기본 코드 Whack-a-mole! 0 Start! 과정 변수, 상수 생성 게임 진행 시간 설정 두다지가 올라올 구멍을 정하는 함수 생성 두더지가 올라오고 내려가도록 하는 함수 생성 게임을 시작하기 위한 함수 생성 두더지를 잡았을 때의 함수 생성 두더지를 클릭하면 bonk 실행 코드 분석 1. 변수, 상수 생성 const holes = document.querySelectorAll('.hole'); const scoreBoard = document.querySelector('.score'); const moles = document.querySelectorAll('.mole'); let lastHole; let timeUp = false; let sco..

Dev/JavaScript30 2021.07.11

28. Video Speed Controller ( JavaScript30 )

Video Speed Controller 목표 비디오 재생속도 컨트롤러를 삽입 기본 코드 1× 과정 상수 생성 속도를 조절할 수 있게하는 함수 생성 함수 실행 코드 1. 상수 생성 const speed = document.querySelector('.speed'); const bar = speed.querySelector('.speed-bar'); const video = document.querySelector('.flex'); 각 클래스에 해당하는 요소를 speed, bar, video에 담음 2. 속도를 조절할 수 있게하는 함수 생성 const handleMove = e => { const y = e.pageY - e.target.offsetTop; const percent = y / e.targe..

Dev/JavaScript30 2021.07.11