자바스크립트

Algorithm/Programmers

[알고리즘/프로그래머스/고득점 Kit] 프로세스(JS)

문제 https://github.com/tony9402/baekjoon GitHub - tony9402/baekjoon: 코딩테스트 대비 문제집(Baekjoon Online Judge) 코딩테스트 대비 문제집(Baekjoon Online Judge). Contribute to tony9402/baekjoon development by creating an account on GitHub. github.com 풀이 1. [순서, 우선순위] 큐를 만든다. 2. tasks를 앞에서부터 하나씩 꺼내서 확인한다. 우선순위가 가장 높은 경우 실행 순서인 order를 1 증가시킨다. 이때 만약 순서(idx)가 찾고자 하는 location이라면 order를 반환한다. 아니라면 다시 우선순위 최댓값을 남은 큐에서 찾는다..

Algorithm/Programmers

[알고리즘/프로그래머스/고득점 Kit] 올바른 괄호(JS)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이전에는 큐로 풀었었는데 카카오 문제 풀고 나서 다른 방법도 알게 되었다. '('면 1, ')' 면 -1을 더해서 음수가 되는 경우 올바른 괄호가 아니라고 판단한다. 그리고 모두 더했을 때 0이거나 양수인데, 이때 0이면 올바른 괄호이므로 true를, 아니면 (가 더 많은 경우로 false를 반환한다. function solution(s){ let s..

FrontEnd/JavaScript

[JavaScript] sort 함수를 이용한 데이터 정렬

자바스크립트에서 배열을 정렬할 때는 보통 sort() 메서드를 활용한다. sort는 원본 배열을 직접 변경하며 정렬된 원본 배열을 반환한다. Array.prototype.sort(compareFn?: (a: T, b: T) => number): this 즉, 배열.sort([비교함수])의 형태로 사용한다. 비교함수는 보통 요소를 비교해 1, 0, -1을 반환하는 함수이다. 양수를 반환하는 경우 두 요소의 순서를 변경하고, 음수나 0을 반환하면 순서를 유지한다. 두 가지 이상의 기준으로 sort할 때 동일한 값으로 판단되는 0은 유용하다. 0인 경우 다른 값을 기준으로 다시 비교할 수 있기 때문이다. MDN에 나와 있는 sort의 compareFn 정렬 기준에서 확인할 수 있다. 따라서, 오름차순의 경우 ..

FrontEnd/JavaScript

[JavaScript] Vanilla JS 과제 테스트 풀이 방향

과제 테스트를 접하며, 2023 데브 매칭 상반기에 참여해 처음으로 과제 테스트를 풀어보았다. 예상치 못한 구조로 나오기도 했지만 자바스크립트에 대한 복습이 필요하다는 생각이 들어 과제 테스트 풀이 방향을 찾아보고 정리하는 시간을 가지게 되었다. 자바스크립트 과제 풀이계에서 정석과 같은 고양이 사진첩을 바탕으로 정리하였는데, 익숙한 내용도 있었지만 캐싱이나 뒤로 가기 등의 선택적으로 구현해야 하는 기능은 새로 배울 수 있어 유용했다. 커넥투 과정에서 페어 프로그래밍을 통해 구현했던 내용들을 복습하고 바닐라 자바스크립트로 구현하는 힘을 길러야겠다는 생각이 들었다. 이때까지는 구현 시에 주로 axios를 사용했는데 fetch도 사용해보면서 차이점을 알고 사용할 수 있게 되었다. 이전에는 리액트와 유사하게 구..

FrontEnd/JavaScript

[프로그래머스 FE 2023 Dev-Matching] 인사 정보 SPA 리뉴얼(History API, 자바스크립트 import, localStorage 사용)

프로그래머스 2023 Dev-Matching을 준비하면서 과제 테스트를 풀어보게 되었다. 풀이를 하는 과정에서 History API나 localStorage사용 등 배웠거나 헷갈렸던 부분을 정리해보았다. todolist를 만들면서 했던 데이터를 추가, 삭제, 수정을 복습하고, 리액트와 자바스크립트의 차이를 생각해볼 수 있는 시간이었다. History API : 페이지 이동 없이 주소 변경하기 history.pushState(state, title[, url]) // url로 주소 변경하는 함수 changeURL(url) { history.pushState("", "", url); } 리액트에서 페이지 전환 시 사용하는 react-router는 history.push 를 통해 브라우저 주소(url)를 변경..

Algorithm/BOJ

[알고리즘/백준/2164] 카드2(자료구조, 큐)

문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 풀이 class Queue { constructor() { this.data = []; this.head = 0; this.tail = 0; } push(item) { this.data[this.tail++] = item; } pop() { this.head++; } front() { return this.data[this.head]; } rear() { return this.data[thi..

Algorithm/Inflearn

[알고리즘/인프런] K번째 큰 수

문제 현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려 고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로 큰 수를 출력 하는 프로그램을 작성하세요. 만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값 은 22입니다. 풀이 #1 배열 사용 function solution(N, K, arr) { arr.sort((a, b) => b - a); let cnt = 0; const picked = []; for (let i = 0; i < N; i++) { for (let j = i +..

Algorithm/Inflearn

[알고리즘/인프런] 졸업 선물

문제 선생님은 올해 졸업하는 반 학생들에게 졸업선물을 주려고 합니다. 학생들에게 인터넷 쇼핑몰에서 각자 원하는 상품을 골라 그 상품의 가격과 배송비를 제출하라 고 했습니다. 선생님이 가지고 있는 예산은 한정되어 있습니다. 현재 예산으로 최대 몇 명의 학생에게 선물을 사줄 수 있는지 구하는 프로그램을 작성하세요. 선생님은 상품 하나를 50% 할인해서(반 가격) 살 수 있는 쿠폰을 가지고 있습니다. 배송비는 할인에 포함되지 않습니다. 풀이 // 각 학생을 포함시킬 때 pp에 상품가를 저장하고 pd에 배송비를 더한다. // pp에서 최댓값에 50%를 계산해 모두 더한다. // 더한 값이 최댓값이라면 answer에 cnt를 할당한다. function solution(M, arr) { const N = arr.l..

개발자 김비숑
'자바스크립트' 태그의 글 목록