본문 바로가기

코딩테스트177

LV2 :: 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr function solution(arr1, arr2) { return arr1.map((row, i) => arr2[0].map((_, j) => row.reduce((sum, val, k) => sum + val * arr2[k][j], 0) ) );} 2025. 2. 21.
LV.2 :: 할인 행사 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(want, number, discount) { let answer = 0; // 원하는 제품과 수량을 Map으로 저장 const wantedItems = new Map(); for (let i = 0; i 2025. 2. 21.
LV.2 :: 괄호 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(s) { // 올바른 괄호 문자열인지 확인하는 함수 const isValid = (str) => { const stack = []; const pair = { ')': '(', '}': '{', ']': '[' }; for (const char of str) { if (char in pair) { if (!stack.le.. 2025. 2. 21.
LV.2 :: 귤 고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr function solution(k, tangerine) { const countMap = new Map(); // 개수 카운팅 for (const t of tangerine) { countMap.set(t, (countMap.get(t) || 0) + 1); } // 개수를 기준으로 내림차순 정렬 const sortedCounts = [...countMap.values()].sort((a, b) .. 2025. 2. 21.
LV.2 :: 주식 가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfunction solution(prices) { var answer = []; for (let i = 0; i 2024. 10. 21.
LV.2 :: n^2 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(n, left, right) { const result = []; for (let i = left; i 비추천하는 방식. 모든 배열을 다~ 구한 다음에 slice하는 방식인데, 이 경우 필요없는 부분을 너무 많이 구해버려서 런타임 에러가 난다.효율적이지도 않은 코드. 여기서 한참 헤맸는데 방법 자체를 바꿔야 통과할 수 있다.function soluti.. 2024. 10. 21.
LV.2 :: 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfunction solution(progresses, speeds) { let workingDays = 0; // 일하는데 걸리는 날의 수 let workFinishTime = []; // 일하는데 걸리는 날의 수의 집합 for (let i=0; i= workFinishTime[day+1]) { if (day !== workFinishTime.length - .. 2024. 10. 21.
LV.2 :: 예상 대진표 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(n, a, b) { var answer = 0; // a와 b가 같아질 때까지 계속 반복 while (a !== b) { // a와 b를 각각 2로 나눈 몫을 구하고, 반올림 a = Math.ceil(a / 2); b = Math.ceil(b / 2); answer++; // 라운드 카운트 증가 }.. 2024. 10. 21.
LV.2 :: 멀리 뛰기 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   function solution(n) { const distance = [1, 1, 2]; for (let i = 3; i 2024. 10. 21.
LV.2 :: 영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(n, words) { let answer = []; let seenWords = []; // 단어 기록을 위한 배열 for (let i = 0; i 0 && words[i - 1].slice(-1) !== words[i].slice(0, 1)) { answer.push((i % n) + 1); // 1-indexed 사람 번호 .. 2024. 10. 21.
LV.2 :: N개의 최소공배수 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(arr) { let answer = arr[0]; // 첫 번째 값을 초기값으로 설정 for (let i = 1; i 2024. 10. 21.
LV.2 :: 구명보트 function solution(people, limit) { var lifeBoatsCount = 0; let arr = people.filter( x => xa-b); // 구명보트의 제한무게 이상 몸무게가 나가는 사람은 .. 어쩔수없다. 살아남을 인간 무리에서 빼버린다. 그리고 구명보트 제한무게 이하의 몸무게를 가진 사람들만 남기고 오름차순으로 정렬한다. while (arr.length > 0){ // 태울 사람들이 아직 남아 있다면.. if (arr.length > 1) { // 태울 사람들이 2명 이상이라면 if (arr[0] + arr[arr.length-1] https://school.programmers.co.kr/learn/course.. 2024. 10. 21.
LV.2 :: 점프와 순간 이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(n) { var battery = 0; while (n > 0) { if (n % 2 == 0) { n = n / 2; } // 순간이동 else { battery++; // 점프해야 하는 경우 n = n - 1; } } return battery;} 2024. 10. 21.
LV. 2 :: 카펫 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(brown, yellow) { var arr = []; for (let i = 1; i 2024. 10. 21.
LV.2 :: 짝지어 제거하기 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(s) { const stack = []; for (let letter of s) { if (stack.length > 0 && stack[stack.length - 1] === letter) { stack.pop(); } else { stack.push(letter); } } .. 2024. 10. 21.
LV.2 :: 피보나치 수 https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(n) { const arr = [0, 1]; // 피보나치 수열의 첫 두 수 for (let i = 2; i 2024. 10. 21.
LV.2 :: 다음 큰 숫자 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(n) { for (let i=n+1; i 2024. 10. 20.
LV.2 :: 이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(s) { let deletedzero = 0; let count = 0; while (s != '1'){ let arr = s.split(''); for (i=arr.length-1; i>=0; i--){ if (arr[i]=='0'){ arr.splice(i,.. 2024. 10. 20.
LV.2 :: JadenCase 문자열 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(s) { let arr = s.toLowerCase().split(''); arr[0] = arr[0].toUpperCase(); for (i=1; ifunction solution(s) { return s .toLowerCase() // 문자열 전체를 소문자로 변환 .split(' ') // 공백을 기.. 2024. 10. 20.
LV.2 :: 최솟값 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(A,B){ A.sort((a,b)=>a-b); // A를 오름차순대로 정렬 B.sort((a,b)=>b-a); // B를 내림차순대로 정렬 for (i=0; i a + b, 0);; // 총합} 2024. 10. 20.
LV.2 :: 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr function solution(s) { const stack = []; // 스택을 초기화 for (let char of s) { if (char === '(') { stack.push(char); // 여는 괄호는 스택에 추가 } else if (char === ')') { if (stack.length > 0) { .. 2024. 10. 20.