코딩테스트 문제풀이/프로그래머스 30

[프로그래머스] 고득점 Kit 정렬

42748 K번째수 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 20220314 javascript 풀이 function solution(array, commands) { var answer = []; commands.forEach((v) => { let temp = array.slice(v[0]-1, v[1]).sort((a,b) => a-b); answer.push(temp[v[2]-1]); }) return answer; } 2번 케이스만 틀리는 경우 javascri..

[프로그래머스] 고득점 Kit 스택/큐 문제풀이

42586 기능개발 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 20220313 javascript 풀이 function solution(progresses, speeds) { let answer = []; let release = 0; let count = 0; progresses.forEach((v, i) => { let day = Math.ceil( (100-v)/speeds[i] ); if(..

[프로그래머스] 다단계 칫솔 판매

https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 20220308 javascript 풀이 function solution(enroll, referral, seller, amount) { let people = new Map(); let money = new Map(); enroll.forEach((v,i) => { people.set(v, referral[i]); money.set(v, 0); }); s..

[프로그래머스] Level1 문제풀기 1

직사각형 별찍기 https://programmers.co.kr/learn/courses/30/lessons/12969 // 단순 for 문 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); for(let i=0; i v1.map((v2, i2) => v2 + arr2[i1][i2])); } 핸드폰 번호 가리기 https://programmers.co.kr/learn/courses/30/lessons/12948 function solution(phone_number) { var answer = ''; for(l..

[프로그래머스] 수식 최대화

https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 결과 코드 function solution(expression) { let answer = []; let number_arr = expression.split(/[+\-\*]/); let operator_arr = expression.replace(/[^+\-\*]/g, "").split(""); answer.push(solve(number_arr.slice(..

[프로그래머스] 신규 아이디 추천

https://programmers.co.kr/learn/courses/30/lessons/72410# 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 정해진 규칙에 맞게 하나씩 처리하면 되는 간단한 문제 결과 코드 function solution(new_id) { new_id = new_id.toLowerCase(); // 1단계 new_id = new_id.replace(/[^0-9a-z\-_\.]/g, ""); // 2단계 new_id = new_id.replace(/\.{2,}/g, "."); ..

[프로그래머스] 124 나라의 숫자

https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 숫자가 3개라 3진법으로 생각하니 오히려 복잡했다. 3진법과 유사하게 3으로 나눠가며 계산하되, 몇가지 추가 처리하는 것으로 변경. 20정도까지 직접 계산해보며 적어보는 것을 추천. 결과 코드 function solution(n) { let answer = ''; let q, s; while(n !== 0) { q = parseInt(n / 3); s = n % 3; if(s === 0) { q--; s = 4; } n = q; answer = s + answer; } return answer; }

[프로그래머스] 숫자 문자열과 영단어

https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 결과 코드 function solution(s) { s = s.replace(/zero/g, "0"); s = s.replace(/one/g, "1"); s = s.replace(/two/g, "2"); s = s.replace(/three/g, "3"); s = s.replace(/four/g, "4"); s = s.replace(/five/g, "..

[프로그래머스] 로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 결과 코드 function solution(lottos, win_nums) { let zero_count = 0; let correct = 0; for(let i in lottos) { if(lottos[i] == 0) zero_count++; else { if(win_nums.includes(lottos[i])) ..

[프로그래머스] 짝지어 제거하기

프로그래머스 짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr Level 2 라 쉽게 생각하고 시작했다. 처음엔 문제 그대로 돌아가게 짰다가 효율성에서 통과 못하고 실패. 그다음에 복잡도를 줄이려고 많이 고민했는데, 오히려 이게 패착이 된 듯 싶다. 도저히 생각이 안나서 힌트를 봤고, 의외로 너무 쉽게 풀렸다... 반복문으로 확인하고 문자열에서 일부 삭제 (X) push/pop으로 ..

728x90
반응형