개발Story
article thumbnail
[프로그래머스: javascript] LV1(3진법 뒤집기)
생산성/코딩테스트 2022. 5. 8. 16:39

소요시간 : 10분 문제 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 해석 단순하다 3진법으로 변경해주는 toString(3) 앞뒤를 변경해주는 split, reverse 10진법으로 값을 표현해주는 parseInt 함수만 알면 간단하게 풀 수 있다. 풀이 function solution(n) { var answer = 0; answer = n.toString(3).split("").reverse().join(""); answer = answer.toString(10); answer = parseInt(answer,3..

article thumbnail
[프로그래머스: javascript] LV1(약수의 개수와 덧셈)
생산성/코딩테스트 2022. 5. 8. 16:04

소요시간 : 10분 문제 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000 해석 주어진 left, right를 기준으로 for문을 돌린 후 약수의 갯수를 판별해 +, -를 해주면 되는 간단한 문제이다. key point는 약수의 갯수를 어떻게 구할지 정하는 것 같다. 풀이 function solution(left, right) { var answer = 0; for(let i = left; i { const divisors = []; for(let i = 1 ; i a -..

article thumbnail
[프로그래머스: javascript] LV1(실패율)
생산성/코딩테스트 2022. 5. 8. 15:25

소요시간 : 40분 문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 sta..

article thumbnail
[프로그래머스: javascript] LV1(폰켓몬)
생산성/코딩테스트 2022. 5. 8. 13:32

소요시간 : 30분 문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰..

article thumbnail
[프로그래머스: javascript] LV1(모의고사)
생산성/코딩테스트 2022. 5. 7. 15:59

소요시간 : 40분 문제 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 ..

[Javascript] Slice, Splice, Split
Javascript/문법 2022. 5. 7. 12:40

코딩 테스트 문제를 푸는데 배열을 자르거나, 조합할 일이 많았다. 그럴때마다 문법을 찾아봤는데 이참에 정리를 해보려 한다. Slice() Slice()는 배열 메서드로 원하는 부분을 복사하고 새로운 배열을 리턴한다. 배열을 변경하지 않는것이 핵심이라고 한다. //loaf3과 loaf5를 새 배열에 복사하고 싶어욧.. let bread=['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6']; newArr=bread.slice(2,5); //output:["loaf3", "loaf4", "loaf5"] Splice() Splice()또한 배열 메서드로 배열에 원하는 엘리먼트 갯수를 추가하거나 제거할 수 있다. 이는 기존 배열에 변이를 준다. let bread = ['loaf..

[프로그래머스: javascript] LV1(음양 더하기)
생산성/코딩테스트 2022. 5. 6. 15:56

소요시간 : 10~15분 문제 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. [4,7,12] [true,false,true] 9 [1,2,3] [false,false,true] ex) absolutes =..

article thumbnail
[javascript ES6] reduce(누산기)
Javascript/문법 2022. 4. 23. 16:50

코딩테스트 문제를 접하면서 reduce함수를 활용한 경우가 많았다. reduce는 동사로 줄이다라는 뜻이다. javascript에서는 배열객체에서 사용하는 함수로 배열을 돌려서 줄여간다? 예제를 통해서 알아보자 Array.reduce() 예제 1) reduce() 메서드는 배열의 각 요소에 대해 주어진 reducer함수를 실행하고, 하나의 결과값을 반환한다. const array1 = [1, 2, 3, 4]; // 0 + 1 + 2 + 3 + 4 const initialValue = 0; const sumWithInitial = array1.reduce( (previousValue, currentValue) => previousValue + currentValue, initialValue ); conso..