알고리즘, 자료구조 38

프로그래머스/하샤드 수/javascript

처음 코드 function solution(x) { let answer = true; let splitX = x.toString().split(''); let sum = splitX.reduce((acc, cur) => Number(acc) + Number(cur)); if(x % sum !== 0) answer = false; return answer; } 문제를 잘 읽고 그대로 코드로 작성하면 된다. 알면 좋은 내용 문자열로 변환 후 split하여 자릿수를 더하는 것 reduce로 합을 구하는 것 기본값은 true이고 하샤드 수가 아닐 때만 확인해서 return 하는 것

해커랭크/Hackerrank/Day 3:Arrays/javascript

배열 중복을 제거하는 3가지 방법을 소개합니다. 1. Set function getSecondLargest(nums) { // Complete the function // 1. Set const set = new Set(nums); const uniqueArr = [...set]; const sortArr = uniqueArr.sort((a, b) => a-b); let answer = sortArr[sortArr.length-2]; return answer; } 2. indexOf(), filter() function getSecondLargest(nums) { // Complete the function // 2. indexOf(), filter() const uniqueArr = nums.filte..

프로그래머스/3진법 뒤집기/javascript

잘 못 접근 한 코드 function solution(n) { var answer = 0; let decimalToTernary = []; let TernaryToDecimal = []; // 10진법 > 3진법 while(n > 0) { let result = (n % 3); decimalToTernary.push(result); n /= 3; } console.log(decimalToTernary); // 앞뒤 반전 // 3진법 > 10진법 return answer; } 결괏값 [ 0, 0, 2, 1.6666666666666667, 0.5555555555555556, 0.1851851851851852, 0.0617283950617284, 0.0205761316872428, 0.0068587105624..

프로그래머스/음양 더하기/javascript

상대적으로 쉽게 생각되는 문제를 만났다, 6달 전의 나라면 어림없었을 거다. 기쁜 마음으로 풀이를 남겨본다. 답을 맞혔더라도 다른 분들 코드를 찾아보는 것을 잊지 말자, 다양한 코드 읽는 것은 언제나 중요한 일! 나의 코드 function solution(absolutes, signs) { var answer = 123456789; let valueTemp = []; let valueFinal = []; // false -, true + // 1. 불리언 값을 연산자로 변환한다. const exchangeSigns = signs.map( currentValue => currentValue ? '+' : '-'); // 2. 주어진 숫자에 변환한 연산자를 붙여주고, 숫자와 연산자를 붙인 값을 valueTe..

프로그래머스/로또의 최고 순위와 최저 순위/javascript

어떻게 풀어야 할지 생각하는 순서를 다듬기 위해 노력한 문제라서 기록에 남겨본다. 정답도 아니고 논리에 구멍이 숭숭 난 나의 처음 코드 function solution(lottos, win_nums) { var answer = []; // 찍은 번호와 당첨 번호를 비교한다 // 같으면 카운트 1, 다르면서 0이면 카운트 1 => 최고 순위 // 같으면 카운트 1, 다르면서 0이 아니면 패쓰 => 최저 순위 let count = 0; lottos.forEach( element => { if(win_nums.indexOf(element) !== -1) { count++; } else if (win_nums.indexOf(element) === -1 && element === 0) { count++; } })..

[프로그래머스/javascript] k번째수

풀이 1) 배열 array가 주어지면, 주어진 조건에 맞게 배열을 자르고 정렬한 뒤 결괏값을 찾아야 하는 문제이다. 2) 배열을 순회하면서 자를 수 있어야 하고, 정렬할 줄 알아야 한다. 통과 못한 코드 function solution(array, commands) { var answer = []; for(let i = 0; i < commands.length; i++) { let sliceArray = array.slice(commands[i][0]-1, commands[i][1]); sliceArray.sort(); answer.push(sliceArray[commands[i][2]-1]); } return answer; } 통과한 코드 function solution(array, commands) ..

Hacker Rank JavaScript: Birthday Cake Candles

출처: https://www.hackerrank.com/challenges/birthday-cake-candles/problem Birthday Cake Candles | HackerRank Determine the number of candles that are blown out. www.hackerrank.com 조건에 맞게 함수를 완성하시오. 테스트에 모두 통과하지 못했던 방식 내가 맨 처음에 작성한 방법 function birthdayCakeCandles(candles) { // Write your code here let n = candles.length; let max = Number.MIN_SAFE_INTEGER; let cnt = 0; for(let i = 0; i < n; i++) { i..

[프로그래머스/javascript/카카오 인턴] 키패드 누르기

문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 #키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 1. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 2. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 3. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 4. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가..

반응형