연습장
![[HackerRank - Easy] Flatland Space Stations - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FeNsKsf%2FbtrVaTqRGMK%2FAAAAAAAAAAAAAAAAAAAAAP6dSnYDVFQitcr3KHT9kaRbgKZiK6lUHrIQAGoLOS5o%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D0PRKO%252F39nrXHc4MTSGvV6kBRZ%252Fs%253D)
[HackerRank - Easy] Flatland Space Stations - JavaScript
🔗 문제 링크 https://www.hackerrank.com/challenges/flatland-space-stations/problem?isFullScreen=true Flatland Space Stations | HackerRank Find the maximum distance an astronaut needs to travel to reach the nearest space station. www.hackerrank.com ✏️ 풀이 function flatlandSpaceStations(n, c) { c.sort((a, b) => a - b); let max = Math.max(c[0], n - c[c.length - 1] - 1); for (let i = 0; i < c.length - 1; ..
![[HackerRank - Easy] Big Sorting - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbhedRI%2FbtrU1M7Rt7Q%2FAAAAAAAAAAAAAAAAAAAAAEsXabffBBvsom_MSqSTvocZKWdiNHbvCd2kCLOfMxZg%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D6O63DxhRRnjaDUU%252BMzn0F6Dqs64%253D)
[HackerRank - Easy] Big Sorting - JavaScript
🔗 문제 링크 https://www.hackerrank.com/challenges/big-sorting/problem?isFullScreen=true Big Sorting | HackerRank Sort an array of very long numeric strings. www.hackerrank.com ✏️ 풀이 function bigSorting(unsorted) { return unsorted.sort((a, b) => { if (a.length === b.length) { for (let i = 0; i < a.length; i++) { if (a[i] === b[i]) { continue; } return a[i] - b[i]; } return 0; } return a.length - b.le..
![[프로그래머스 Level 2] 디펜스 게임 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcEmXyS%2FbtrUYqC5Nm8%2FAAAAAAAAAAAAAAAAAAAAAD0TJvDT8lpsZFqXeTQoBxZ8ck3aCoRy8kcJtRil-RDb%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252FEmEsibx57h7PYoYxjjQyoquH4E%253D)
[프로그래머스 Level 2] 디펜스 게임 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, k, enemy) { if (enemy.length 0 && heap[index] < heap[parent]) { [heap[index], heap[parent]] = [heap[parent], heap[index]]; index = parent; parent = Math.floor((index - 1) / 2); } } pop() ..
![[프로그래머스 Level 2] 테이블 해시 함수 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FboETRs%2FbtrUVb6GiDU%2FAAAAAAAAAAAAAAAAAAAAABQdv2NKfaDPTbLzjHbWQNrFRtZq7GIURG3ffzb5w7uc%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DCYQn5mjGCMhi0JFQvUInCXr2tCI%253D)
[프로그래머스 Level 2] 테이블 해시 함수 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(data, col, row_begin, row_end) { return data .sort((a, b) => a[col - 1] === b[col - 1] ? b[0] - a[0] : a[col - 1] - b[col - 1] ) .slice(row_begin - 1, row_end) .map((row, index) => row.reduc..
[React/TS] 이벤트 핸들러 함수의 타입
React에서 이벤트 핸들러 함수를 선언할 때, 이벤트 타입 또는 함수 타입을 아래와 같이 선언한다. const handleClick = (event: React.MouseEvent) => { // }; const handleClick: React.MouseEventHandler = (event) => { // }; 여기서 MouseEvent는 반드시 React.MouseEvent를 사용해야 한다. JS에서 기본으로 제공되는 MouseEvent를 사용하면 React에서 사용할 때 타입 에러가 발생한다. (단, DOM 요소에 직접 addEventListener를 사용할 때에는 기본 제공되는 MouseEvent를 사용해야 한다) 제네릭에는 어떤 요소의 onClick(또는 onMouseOver, onDrag ..
![[백준 1715 - Node.js] 카드 정렬하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbpAPQ7%2FbtrR2THSsN5%2FAAAAAAAAAAAAAAAAAAAAAD97mMnrh3ULwLQ_3PMfhWByLh-3ZJSiqX_SBaED8kq0%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D6DMgFlGFg61KEcw%252FxljTBv%252BC9sk%253D)
[백준 1715 - Node.js] 카드 정렬하기
🔗 문제 링크 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net ✏️ 풀이 class PriorityQueue { constructor() { this.heap = []; } swap(a, b) { const temp = this.heap[a]; this.heap[a] = this.heap[b]; this.heap[b] = temp; } push(value) { const { heap } = this; heap.push(value)..
![[프로그래머스 Level 2] 짝지어 제거하기 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FDDtlF%2FbtrRzy6C4nc%2FAAAAAAAAAAAAAAAAAAAAAN8CeaorHu4vbylk0ihhQ9QLImeFIFbgrz7WUHJxNIqv%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DAiXZGYVfhd4VqZmslelRwDzTY8c%253D)
[프로그래머스 Level 2] 짝지어 제거하기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s) { const stack = [s[0]]; for (let i = 1; i < s.length; i++) { if (s[i] === stack[stack.length - 1]) { stack.pop(); continue; } stack.push(s[i]); } return Number(!stack.length) } 스택 자료구조를 활용..
![[프로그래머스 Level 2] 영어 끝말잇기 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FTz4Na%2FbtrRBI1aU74%2FAAAAAAAAAAAAAAAAAAAAAB04fBg6lkDRKm_zR3CWdDbOMuQMDa0WTk-3C3Xoc1qj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DzYIf%252FJzRrWJusYfe5BjCI87XxIU%253D)
[프로그래머스 Level 2] 영어 끝말잇기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, words) { const dict = { [words[0]]: true }; for (let i = 1; i < words.length; i++) { const curWord = words[i]; const prevWord = words[i - 1]; if (dict[curWord] || (curWord[0] !== prevWord[..
![[프로그래머스 Level 2] 이진 변환 반복하기 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FvsOxq%2FbtrRcPsK0aY%2FAAAAAAAAAAAAAAAAAAAAAGMQg3YKTOWXS2yU2wQWDGVWLMbbvW_NUXtUVIuOZLoz%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DvoWWr7vALFjMmznlQhvmN6DyGpg%253D)
[프로그래머스 Level 2] 이진 변환 반복하기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s) { let count = 0; let deletedZero = 0; let x = s; while (x !== '1') { const prevLength = x.length; const curLength = x.replaceAll('0', '').length; x = curLength.toString..
![[프로그래머스 Level 2] 전력망을 둘로 나누기 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FHxvs8%2FbtrQpSFlQAz%2FAAAAAAAAAAAAAAAAAAAAAFQ06QTJfecjTnwB6EL3SZx4euHXy-2qaXWB_oobc22S%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D5fgEi4Vmsm%252B2lsOrjtkAZvmf5OE%253D)
[프로그래머스 Level 2] 전력망을 둘로 나누기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, wires) { const graph = wires.reduce((acc, [start, end]) => { if (acc[start]) { acc[start].push(end); } else { acc[start] = [end]; } if (acc[end]) { acc[end].push(start); } else { acc[end] ..