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

자바스크립트9

[Lv.2] 석유 시추 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 각 영역에 대해 너비 우선 탐색을 하며 석유가 있는 영역에 oilId를 부여한다. oilId를 key로, 영역의 크기를 value로 하는 자료를 저장한다. 이차원 배열에 oilId를 값으로 갖는 석유 지도(?)를 만든다. 세로로 한 줄씩 순회하며 마주치는 석유 영역의 크기를 합산한다. 단, 이전에 합산했던 석유 영역은 건너뛰어야 한다. 코드 function solution(land) .. 2024. 1. 4.
[모던 자바스크립트] 15장 let, const 키워드와 블록 레벨 스코프 ** 본 글은 모던 자바스크립트 Deep Dive 도서 내용을 정리한 것임을 밝힙니다. ES5 까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었다. var 키워드로 선언된 변수는 다음과 같은 특징이 있다. 15.1 var 키워드로 선언한 변수의 문제점 var 키워드로 선언된 변수는 다음과 같은 특징이 있다. 15.1.1 변수 중복 선언 허용 var 키워드로 선언한 변수는 중복 선언이 가능하다. var x = 1; var y = 1; // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. // 초기화 문이 있는 변수 선언은 var 키워드가 없는 것 처럼 동작한다. var x = 100; // 초기화 문이 없는 변수 선언문은 무시한다. var y; consol.. 2023. 7. 24.
[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/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 재귀 DFS로 풀었고, 1. 라이언이 화살을 쏘는 경우 (라이언이 점수 획득) 2. 라이언이 화살을 쏘지 않는 경우 (어피치가 점수 획득 / 둘 다 쏘지 않음) 로 나눠서 풀었다. 과녁의 끝에 도달했을 때에는, 라이언과 어피치의 점수차가 현재의 최댓값보다 큰 경우에만 최대 점수 차이, 라이언의 과녁판을 갱신해주었다. !!! 점수가 가장 낮은 과녁판부터 살펴봐야 한다..!!! 코드 fun.. 2023. 3. 28.
[Lv.2] 호텔 대실 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 문자열 시간을 숫자로 바꿔준다. - 체크인 시간, 체크아웃 시간 + 청소시간을 저장해둔다. - 입실 시간이 빠른 순서대로 정렬한다. - room 배열을 선언한 후, 순회하면서 체크인 하려는 시간이 어떤 방의 체크아웃+청소시간보다 늦은 경우 입실시키고 그렇지 않은 경우에는 새로운 방을 생성(push)한다. - 사용한 방의 개수(room.length)를 출력한다. 코드 function.. 2023. 3. 24.
[Lv.2] 프린터 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - shift, push를 이용해서 큐로 해결하는 문제이다. - 각 문서의 인덱스를 저장하는 배열을 선언해서 우선순위와 함께 관리한다. - 그 이외에는 문제에서 요구하는대로 코드를 작성하면 된다. 코드 function solution(priorities, location) { var answer = 0; // 각 문서의 인덱스를 저장하는 배열 map let map = []; for (l.. 2023. 3. 21.
[Lv.3] 네트워크 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(n, computers) { var network = 0; const visited = new Array(n).fill(false); function DFS(index) { visited[index] = true; // 방문 처리 for (let i = 0; i < n; i++) { // 기준이 되는 인덱스와 연결되어 있고, 방문한 적이 없는 노드라면 i.. 2023. 2. 28.