본문 바로가기

반응형

Level2

[프로그래머스] level2. 큰 수 만들기 (javascript) 문제 프로그래머스 문제 링크 나의 풀이 처음에 나름 풀이를 해보았는데, test케이스만 통과되고 실제 채점을 전부 실패가 떠서 인터넷 검색을 해서 찾아보았다. 다른이의 풀이 [JS] 프로그래머스 - 큰 수 만들기 1. 문제 설명 2. 제한 조건 3. 입출력 예 4. 나의 풀이 쉽게 생각했다가 큰 코 다친 문제다. 예상치 못했던 테스트 케이스 10에서의 시간 초과는 멘붕 그 자체였다. 그런데 이 문제가 탐욕법이라는 taesung1993.tistory.com 위 블로그에서 가져온 코드입니다 :) 친절한 설명이 필요하시다면 읽어보시는걸 추천드립니다! function solution(number, k) { let stack = []; for(let i = 0 ; i < number.length;i++){ let.. 더보기
[프로그래머스] level2. [3차] 압축 (javascript) 문제 프로그래머스 문제 링크 나의 풀이 function solution(msg) { var answer = []; let obj = {}; let arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" arr = arr.split(""); for(let i = 0 ; i < arr.length;i++){ obj[arr[i]] = i+1 } let max = 1; for(let i = 0 ; i < msg.length;){ let w = msg[i]; for(let j = 0 ; j < max;j++){ const tmpw = msg.substring(i,i+max-j) if(obj[tmpw]){ w = tmpw break; } } let c = msg[i+w.length]; if (!c) c= ".. 더보기
[프로그래머스] level2. 구명보트 (javascript) 문제 프로그래머스 문제 링크 나의 풀이 문제를 제대로 이해하지 못했다. 다른이의 풀이 function solution(people, limit) { var answer = 0; people = people.sort((a,b)=>b-a) for(let i =0, j = people.length-1; i 더보기
[프로그래머스] level2. [3차] 파일명 정렬 (javascript) 문제 프로그래머스 문제 링크 나의 풀이 function solution(files) { var answer = []; answer = files.sort((a,b)=>{ const first = a.toUpperCase().match(/\D+/gi)[0]; const second = b.toUpperCase().match(/\D+/gi)[0]; if(first !== second){ return (first > second) ? 1 : -1 } return +a.match(/\d+/gi)[0] - (+b.match(/\d+/gi)[0]) }) return answer; } split, match를 정규 표현식으로 활용 가능하다는 부분이 중요했던 것 같다. 너무 복잡하게 생각하지 않고 sort 내 함수로 .. 더보기
[프로그래머스] level2. 점프와 순간 이동(javascript) 문제 프로그래머스 나의 풀이 function solution(n) { var ans = 0; while(n > 1){ if ( n % 2 == 0 ){ n = (n/2) } else{ n = n-1 ans++ } } return ans+1; } n에서 2로 나누어 떨어지면 n/2, 아니면 n-1을 해주는 과정을 1이 될때까지 과정을 반복하고, 마지막에 1을 더해주는것으로 정답을 구했다. ( 0에서 1은 점프를 해야되니까) 다른이의 풀이 const nArr = Array.from(n.toString(2));이와 같이 toString을 통해 2진법으로 만들고 1의 갯수를 세어도 정답이다. 더보기
[프로그래머스] level2. [3차] 방금 그곡 (javascript) 문제 https://programmers.co.kr/learn/courses/30/lessons/17683 나의풀이 처음에 #을 따로 처리해 주면서 만들었는데, 에러가 나서 구글링 시작했다. 다른이의 풀이 참조해서 작성한 코드 참조 : 블로그 프로그래머스 - 방금그곡 (javascript) [2018 카카오공채] velog.io function solution(m, musicinfos) { var answer = []; m = m .replace(/(C#)/g,"c") .replace(/(D#)/g,"d") .replace(/(F#)/g,"f") .replace(/(G#)/g,"g") .replace(/(A#)/g,"a"); // step1. 시간 계산 for(let i = 0 ; i < musicinf.. 더보기
[프로그래머스] level2. 소수 찾기 (javascript) 문제 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 나의 풀이 function solution(numbers) { var answer = 0; //소수 찾는 함수 function findprime(num){ if(num == 0 || num ==1) return false if (num == 2 || num ==3 ) return true for(let i = 2; i [el]) arr.forEach((fixed,index,origin)=>{ const re.. 더보기
[프로그래머스] level2. 영어 끝말잇기 (javascript) 문제 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 kic.. 더보기

반응형