본문 바로가기

JavaScript51

[프로그래머스][스택/큐] 올바른 괄호, 프로세스 javascript 스택은 LIFO: Last in First out 방식으로 마지막 들어온 데이터에 가장 먼저 접근한다.function solution(s){ const answer = []; for(let i=0; i 큐는 FIFO: First in First out 방식으로 먼저 들어온 데이터에 가장 먼저 접근한다.function solution(priorities, location) { let answer = 0; // priorities 배열의 각 프로세스에 대해 { priority, index } 형태로 객체 배열을 만듦 // 이렇게 하면 우선순위와 해당 프로세스의 원래 위치를 추적할 수 있음 const queue = priorities.map((priority, index.. 2024. 12. 14.
[프로그래머스 Lv.1] 로또의 최고 순위와 최저 순위 function solution(lottos, win_nums) { // 0의 개수와 일치하는 숫자 개수 계산 const zeroCount = lottos.filter(num => num === 0).length; const matchCount = lottos.filter(num => win_nums.includes(num)).length; // 순위를 계산 const getRank = (count) => (count >= 2 ? 7 - count : 6); // 최고 순위와 최저 순위 계산 const maxRank = getRank(matchCount + zeroCount); const minRank = getRank(matchCount); ret.. 2024. 12. 12.
[프로그래머스 Lv.1] 실패율 javascript function solution(N, stages) { var answer = []; let totalPlayers = stages.length; // 전체 사용자 수 let failureRates = []; // 실패율을 저장할 배열 // 각 스테이지별 실패율 계산 for (let i = 1; i stage === i).length; // i번 스테이지에 멈춰 있는 사람 수 let failureRate = notCleared / totalPlayers; // 실패율 계산 failureRates.push({ stage: i, rate: failureRate }); // 실패율과 스테이지 저장 totalPlayers -= notCleared.. 2024. 12. 10.
[프로그래머스 Lv.1] 옹알이(2) javascript function solution(babbling) { var answer = 0; const words = ["aya", "ye", "woo", "ma"]; // 조카가 발음할 수 있는 단어 목록 // 각 단어에 대해 처리 babbling.forEach(babble => { let isValid = true; // 유효한 발음인지 체크 let prevWord = ""; // 이전에 발음한 단어를 저장 while (babble.length > 0 && isValid) { let found = false; for (let word of words) { if (babble.. 2024. 12. 6.
[프로그래머스 Lv.1] 덧칠하기 javascript 너무 어렵게 생각해서 잘 안 풀렸는데 다른 분 코드를 보니 이제 보인다 ....ㅎㅎ다른 사람 풀이function solution(n, m, sections) { var answer = 0; var painted = 0; for(var section of sections) { if(painted 2024. 12. 6.
[프로그래머스 Lv.1] 소수 만들기 function solution(nums) { let answer = 0; // 소수 판별 함수 const isPrime = (num) => { if (num 2024. 12. 5.
[프로그래머스 Lv.1] 소수 찾기 javascript function solution(n) { var answer = 0; // 1에서 n까지의 숫자를 담은 배열 생성 const numbers = Array.from({ length: n }, (_, i) => i + 1); // 각 숫자의 약수 개수를 구함 numbers.forEach(num => { let divisorCount = 0; // 1부터 num까지 나누어떨어지는지 확인 for (let i = 1; i  처음 풀이었는데 테스트 후반 부에 시간 초과로 실패가 떴다.아래는 에라토스테네스의 체를 사용하는 것이라고 한다.function solution(n) { var answer = 0; // 1부터 n까지 true로 초기화된.. 2024. 12. 3.
[프로그래머스 Lv.1] 과일장수 javascript function solution(k, m, score) { var answer = 0; //점수를 내림차순으로 정렬하기 score.sort((a, b) => b - a); //상자를 만들 수 있는 최대 개수 계산 const boxCount = Math.floor(score.length / m); //각 상자의 최저 점수를 기준으로 이익 계산 for (let i = 0; i 2024. 12. 2.
[프로그래머스 Lv.1] 모의고사 javascript function solution(answers) { //수포자 삼인방의 찍는 패턴 정해주고 const pattern1 = [1, 2, 3, 4, 5]; const pattern2 = [2, 1, 2, 3, 2, 4, 2, 5]; const pattern3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; // 수포자들이 맞춘 카운트를 담음 const scores = [0, 0, 0]; // answers 배열의 인덱스와 같은 수포자들의 패턴 인덱스를 비교해서 맞으면 카운트 answers.forEach((answer, index) => { if (answer === pattern1[index % pattern1.length]) scores.. 2024. 11. 28.
[프로그래머스 Lv.1] 기사단원의 무기 javascript function solution(number, limit, power) { let answer = 0; // 1에서 number까지 각 숫자의 약수 개수 계산 for (let i = 1; i limit) { answer += power; // 제한 초과 시 power 추가 } else { answer += divisorCount; // 제한 내면 그대로 추가 } } return answer; // 필요한 철의 총 무게} 2024. 11. 27.
[프로그래머스 Lv.1] 2016년 function solution(a, b) { const days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; // 2016년 a월 b일의 Date 객체 생성 // 월은 0부터 시작해서 -1 해줘야 함 const date = new Date(2016, a - 1, b); // 해당 날짜의 요일 const dayIndex = date.getDay(); // 요일 반환 return days[dayIndex];} 2024. 11. 25.
[프로그래머스 Lv.1] 폰켓몬 function solution(nums) { let newArr = Array.from(new Set(nums)); return newArr.length === nums.length / 2 || newArr.length 2024. 11. 22.