본문 바로가기

javascript21

[프로그래머스] 42840번: 모의고사 (JavaScript) 생각 과정 수포자 별 찍는 패턴을 식으로 만들어서 정답과 매칭해보자.-> 1번 수포자의 경우 6으로 나눈 나머지를 이렇게 저렇게... 하는 방식으로 작성하였지만 2번, 3번에서 시간이 너무 많이 걸렸다. 답을 고민하다 2번, 3번 수포자의 경우 자신의 정답 배열을 구성하여 그것과 맞는지 체크하도록 구상하였고,1번 수포자도 통일하는 것이 바람직하게 느껴져 로직을 수정하였다. function solution(answers) { let score = Array(3).fill(0); const answer = []; const arr0 = [1, 2, 3, 4, 5]; const arr1 = [1, 3, 4, 5]; const arr2 = [3, 1, 2, 4, 5]; let.. 2025. 7. 4.
[프로그래머스] 42862번: 체육복 (JavaScript) 생각 과정 학생들이 가진 체육복 수를 적어놓은 배열을 만들자. (1번 학생 -> 0번 인덱스, 2번 학생 -> 1번 인덱스, 3번 학생 -> 2번 인덱스, ...) 도난이 이루어지기 전, 모든 학생은 체육복을 갖고 있다고 가정(배열 크기를 n만큼 지정하고, 전부 1로 가득 채운다) 이후 체육복의 도난과, 여벌 체육복의 유무를 반영하고 for문으로 순회하며 체육복을 가진 학생을 체크한다. for문이 앞에서 뒤로 순회하는 만큼 체육복이 없는 학생의 경우 (체육복이 0개인 경우), 자신보다 앞선 순서의 체육복을 우선해서 빌린다.(뒤 순서의 체육복을 빌릴 경우 자신의 뒤의 뒤의 학생이 체육복을 못 빌리는 경우가 발생할 수 있으므로)function sortArr(arr) { return arr.slice().s.. 2025. 7. 4.
[프로그래머스] 12982번: 예산 (JavaScript) 생각 과정 가장 많은 부서에 예산을 지원해주기 위해서는, 가장 적은 예산을 사용하려는 부서부터 순서대로 지원해주면 된다. function solution(d, budget) { var answer = 0; var idx = 0; d.sort((a, b) => a - b); while(budget && idx 2025. 7. 4.
[프로그래머스] 12930번: 이상한 문자 만들기 (JavaScript) 생각 과정 문자열의 홀수 인덱스만 대문자로 바꾸면 된다? -> 단어 단위로 리셋된다! (1차 실패) 그렇다면 스페이스 한 칸(' ')을 기준으로 삼아야 할 것이고, 해결하는 방법은 다양하겠지만 split() 메서드와 join 메서드를 사용해 단어를 배열의 요소로 쪼개는 방법을 선택했다. function ascendingOrder(arr) { return arr.sort((a, b) => a - b);}function findMaxSupportNumber(requestArr, money) { let idx = 0; while(idx 알게 된 것들 ascendingOrder 함수에서 매개변수에 sort() 함수를 바로 사용하고 있다. -> 이럴 경우 원본 배열을 직접 변경하기 때문에 원래의 데이터를.. 2025. 7. 4.
[프로그래머스] 76501번: 음양 더하기 (JavaScript) 생각 과정 true일 경우 answer에 더해주고, false일 경우 answer에 빼준다. 삼항 연산자로 가볍게 작성해보자. function solution(absolutes, signs) { let answer = 0; for (let i = 0; i 2025. 7. 4.
[프로그래머스] 12935번: 제일 작은 수 제거하기 (JavaScript) 생각 과정 배열의 크기가 1이면 바로 -1을 리턴하고 -> (대괄호로 감싸져 있는 걸 보니 배열 요소로 반환하는구나!) -> for문으로 그 배열을 순회하며 가장 작은 값을 찾은 후, 다시 한 번 for문으로 새 배열에 값을 추가하되 가장 작은 값과 같은 값이 나오면 그 값을 추가하지 않는다. 이후 작성한 새 배열을 리턴한다. function solution(arr) { let answer = []; let minValue = arr[0]; // 길이 1이면 바로 종료 if (arr.length === 1) return [-1]; // 배열에서 가장 작은 값 찾기 for (let i = 1; i arr[i]) minValue = arr[i]; } // 새 배열 제작 for (let i .. 2025. 7. 4.