전체 글

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 indexOf()를 썼을 때 시간 초과가 떴다. indexOf()는 찾는 요소를 배열의 인덱스 0부터 차례대로 확인해나가기 때문에 대부분의 경우 상당한 시간을 요구하기 때문이다. 이를 대체하기 위한 수단으로 players를 객체 playersObj로 변형시켰다. 이때 key는 참가자 이름, value는 등수이다. 그리고 callings에 속한 참가자 이름을 playersObj에서 찾아 현재 등수를 찾고, players에서 현재 참가자 이름, 그 바로 앞 등수였던 참가자 이름을 교체한다. 또한 pla..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 // 날짜 데이터에 월 더하기 let today = "2019.01.05"; today = new Date(today); const todayPlus6Month = new Date(today.setMonth(today.getMonth() + 6)); console.log(todayPlus6Month); // 2019-07-04T15:00:00.000Z 정답 function solution(today, terms, privacies) { let answer = []; // 개인정보 수집일과 각각의 약..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 정답 function solution(wallpaper) { const xPositions = []; const yPositions = []; // 파일의 위치에 해당하는 좌표를 x, y별로 모은다 wallpaper.map((item, xIndex) => { const tmp = item.split(""); tmp.map((item, yIndex) => { if (item === "#") { xPositions.push(xIndex); yPositions.push(yIndex); } }); }); ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(survey, choices) { // 결과 데이터 형태를 미리 객체 형태로 만들어 순서를 통제한다 // 나중에 R-T, C-F, J-M, A-N끼리 어떤 알파벳 점수가 더 높은지 비교해야 하는데 이렇게 미리 만들어두면 나중에 따로 정렬할 필요가 없다 // 두 알파벳의 점수가 동일한 경우에도 R-T, C-F, J-M, A-N에서 왼쪽 알파벳이 우선 순위를 갖게 된다 let result = { R: 0, T: 0, C: 0, F: 0, J: 0, M: 0, A: 0, ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(new_id) { // 1단계: new_id의 모든 대문자를 대응되는 소문자로 치환합니다. new_id = new_id.toLowerCase(); // 2단계: new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. const filterText = [ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모풀이 방법 1코드에는 문제가 없는 것 같은데 계속해서 시간 초과가 떠서 당황했던 문제이다. 처음엔 시간 초과의 원인이 for문이나 splice()에 있는 줄 알고 한참을 헤맸다. 그런데 시간 초과의 원인은 연속된 4개의 요소를 삭제한 뒤 i를 -1로 초기화했기 때문이었다. 다시 말해 배열에서 splice()를 통해 요소를 삭제할 때마다 i가 -1로 초기화되면서 for문이 완전히 처음부터 다시 시작되고 있었던 것이다. 그러나 배열에서 변경된 부분은 일부 삭제된 요소에만 해당되므로 i를 -1로 설정할 필요는..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(numbers, hand) { // 각각의 키패드 좌표를 담은 배열을 생성한다 const keypadPosition = [ [0, 3], [1, 3], [2, 3], [0, 2], [1, 2], [2, 2], [0, 1], [1, 1], [2, 1], [1, 0], ]; const leftNumbers = [1, 4, 7]; const rightNumbers = [3, 6, 9]; // 왼손, 오른손의 초깃값 위치 변수를 좌표로 설정한다 let leftHand = [..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(board, moves) { let basket = []; let answer = 0; // moves의 길이 만큼 반복문을 돌린다 // board의 맨 윗줄부터 moves 위치를 체크한다 // 해당 줄의 moves 값이 0이면 다음 줄로 넘어간다 // 값이 0이 아닌 경우: // 해당 값을 basket에 푸시한 뒤 0으로 교체한다 // 반복문에서 빠져나온다 for (let i = 0; i < moves.length; i++) { for (let j = 0; j < ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(s, skip, index) { const sToArr = s.split(""); const skipToArr = skip.split(""); let answer = ""; const alphabetArr = [ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", ]; // 스킵할 알파벳을..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(keymap, targets) { let answer = []; for (let i = 0; i < targets.length; i++) { let target = targets[i].split(""); let minArr = []; // isImpossible은 찾는 글자가 없는 경우 flag 처리할 변수 let isImpossible = false; for (let j = 0; j < target.length; j++) { let countArr = []; for..
카버
카버의 코딩일기