본문 바로가기
  • 살짝 구운 김 유나

JavaScript10

[Lv.2] 메뉴 리뉴얼 - JavaScript (feat. combination) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 순열 공부하면서 조합은 공부 안했던 사람,,, JS로 조합! 공부해자,, 주어진 코스별 가능한 조합을 찾는다. 그 중에서 2번 이상 주문된 조합을 찾는다. 또 그중에서 가장 많이 주문된 경우를 찾는다.. 그냥 문제에서 하라는대로 한다... 조합 구하기! // 조합을 구하는 함수 const combination = (arr, n) => { // 배열의 길이가 1일 때는 자기 자신을 담은 .. 2023. 6. 11.
[Lv.3] 택배 마스터 광우 - JavaScript (근데 이제 Permutation을 곁들인..) 외... JS로 소프티어 푸는 사람 없는건대,,, 구글에 검색해도 잘 안나와서 넘 외롭다,,, 순열! 구하기! const permutation = (arr, num) => { // 길이가 1일때는 자기 자신이 담긴 리스트 반환 if(arr.length === 1) return [arr] const res = [] arr.forEach((v, idx, arr) => { // 현재 인덱스에 해당하는 원소를 제외, 나머지 원소로 이루어진 rest 배열 생성 const rest = [...arr.slice(0, idx), ...arr.slice(idx+1)] // rest 배열의 조합 구하기 const permutations = permutation(rest , num-1) // 현재 인덱스를 배열의 가장 앞쪽.. 2023. 6. 2.
[Lv.2] 주차 요금 계산 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 한 차량이 주차장을 여러번 방문했을 경우도 생각해야 한다. 한 번 이용했을 때의 시간들을 계산해서 리스트의 형태로 관리해야 하는 문제! 그 외에는 하라는 대로 하면 되는 문제이다. 자세한 설명은 주석 참고~̆̈ 코드 function solution(fees, records) { var answer = []; let bill = {}; records.forEach((record) => {.. 2023. 5. 9.
[Lv.2] 이모티콘 할인행사 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 모든 경우의 할인율 조합을 구한다. 2. 할인율 조합, users, emoticons 세가지로 3중 for문을 돌면서 각 경우에 대한 [가입자수, 판매액] 값을 구한다. 2. 가입자수가 많은, 판매액이 높은 순으로 다중 조건 정렬을 수행한다. 코드 function solution(users, emoticons) { const len = emoticons.length; // 모든 .. 2023. 5. 8.
[Lv.2] 과제 진행하기 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (programmers의 질문하기 답변 참고) 1. 과제 목록의 시간을 분단위의 숫자로 변환하여 시작시간이 빠른 순서대로 정렬한다. 2. 현재 시간을 1분씩 증가시키면서 2-1. 시작해야 할 과제가 있다면 스택에 삽입한다 2-2. 그렇지 않다면 스택의 맨 마지막 원소 과제를 1분씩 진행한다. 이때, 진행중인 과제가 완료되면(시간이 0이 된 경우) 과목명을 answer에 추가한 후 po.. 2023. 4. 22.
[LV.2] 요격시스템 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(targets) { // 요격 횟수 var answer = 0; // 구간의 시작을 중심으로 오름차순 정렬 targets.sort((a, b) => a[0] - b[0]); let point = 0; // 범위의 끝을 기억하는 변수 targets.forEach((target) => { // 일단 한발 쏘기 answer++; // 미사일 구간이 이전에 쏜.. 2023. 4. 17.
[Lv.2] 리코쳇로봇 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 최단거리를 구하는 문제이므로 BFS를 이용한다. - 단순 너비우선과 달리 4방향을 탐색하면서 while문을 사용하여 미끄러져야 한다. - 다른 방향으로 미끄러질 수 있으므로 벽에 부딪히거나 장애물을 만났을때 멈춘 좌표만 방문처리를 해주자. 코드 function solution(board) { var answer = 0; const rows = board.length; const c.. 2023. 4. 17.
[Lv.2] 호텔 대실 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 문자열 시간을 숫자로 바꿔준다. - 체크인 시간, 체크아웃 시간 + 청소시간을 저장해둔다. - 입실 시간이 빠른 순서대로 정렬한다. - room 배열을 선언한 후, 순회하면서 체크인 하려는 시간이 어떤 방의 체크아웃+청소시간보다 늦은 경우 입실시키고 그렇지 않은 경우에는 새로운 방을 생성(push)한다. - 사용한 방의 개수(room.length)를 출력한다. 코드 function.. 2023. 3. 24.
JavaScript 심화 - Event Event : 프로그래밍하고 있는 시스템에서 일어나는 사건 혹은 발생인데, 우리가 원한다면 그것들에 어떠한 방식으로 응답할 수 있도록 시스템이 말해주는 것 ex) 사용자가 버튼을 클릭한다면 우리는 그 사건에 대한 결과를 응답 받기를 원할 수 있음 Event Object : 네트워크 활동이나 사용자와의 상호작욕 같은 사건의 발생을 알리기 위한 객체 - 사용자의 행동이나, 특정 메서드를 호출함으로써 만들어질 수 있음 DOM 요소는 Event를 "받고" 받은 Event를 "처리"할 수 있음 -> Event 처리는 주로 addEventListener() 라는 처리기를 사용해 다양한 html 요소에 "부착"하게 됨 "대상에 특정 Event가 발생하면, 할 일을 등록하자" EventTarget.addEventLis.. 2022. 10. 24.
JavaScript 심화 - DOM Browser APIs : 웹 브라우저에 내장된 API로, 웹 브라우저가 현재 컴퓨터 환경에 관한 데이터를 제공 하거나, 오디오를 재생하는 등 여러가지 유용하고 복잡한 일을 수행할 수 있게 함 종류 DOM Geolocation API : 지리정보 WebGL : 그래픽 DOM (Document Object Model) : 문서 객체모델 API 문서의 구조화된 표현을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공 문서 구조, 스타일, 내용 등을 쉽게 변경 HTML 콘텐츠를 추가, 제거, 변경하고, 동적으로 페이지에 스타일을 추가하는 등 HTML/CSS를 조작할 수 있음 - HTML 문서를 구조화 하여 각 요소를 객체 취급 - 단순한 속성 접근, 메서드 활용 뿐만 아니라 프로그래밍 언어.. 2022. 10. 24.