✏️기록하는 즐거움
article thumbnail
[프로그래머스] 폰켓몬 - level 1 (javascript)
Algorithm/Programmers 2022. 10. 28. 17:14

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(nums) { const newNums = new Set(nums); const count = parseInt(nums.length / 2); return (newNums.size >= count) ? count : newNums.size; } | 풀이과정 가장 많은 종류의 폰켓몬을 데려가려면 중복되는 것이 없어야 한다. 1) 폰켓몬 종류 번호가 담긴 배열 nums를 Set 자료구조로 만든다. 2) 중복되지 않은 폰켓몬의 수(Set.size())가 가져갈 수 있는 최대..

article thumbnail
[프로그래머스] 숫자 문자열과 영단어 - level1 (javascript)
Algorithm/Programmers 2022. 10. 28. 16:57

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(s) { let numArr = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; let answer = s; for(let i = 0; i < numArr.length; i++) { let arr = answer.split(numArr[i]); answer = arr.join(i); } return Number(answer); } | 풀이과정 문자열로 표현된 부분을 알맞은..

article thumbnail
[프로그래머스] [1차] 비밀지도 - level 1 (javascript)
Algorithm/Programmers 2022. 9. 19. 17:24

| 제출 function solution(n, arr1, arr2) { let newArr = []; for (let i = 0; i item .padStart(n, 0) .split("") .map((num) => (num === "1" ? "#" : " ")) .join("") ); } | 풀이과정 비트 OR 연산자( | )는 대응되는 비트 중에서 하나라도 1이면 1을 반환한다. 현재 두 그림을 더했을 때 벽인 부분은 전체 지도에서도 벽이되고, 모두 공백인 부분만 전체 지도에서 공백이다. 벽은 1, 공백은 0으로 표현되기 때문에 주어진 두 배열을..

article thumbnail
[프로그래머스] 최소직사각형 - level 1 (javascript)
Algorithm/Programmers 2022. 9. 19. 16:53

| 제출 function solution(sizes) { let maxSize = [0, 0]; sizes.map(([w, h]) => w { if(w > maxSize[0]) maxSize[0] = w if(h > maxSize[1]) maxSize[1] = h }); return maxSize[0] * maxSize[1]; } | 풀이과정 가로, 세로 길이가 크기 상관없이 주어졌기 때문에 정렬을 해주어야 한다. sizes.map((item) => itme.sort((a, b) => a - b)); map 메서드 안에서 sort 메서드를 사용하여 정렬해주어도 되지만, if 문으로 비교하는 것이 더 속도가 빠르다. 현재 요소인..

article thumbnail
[프로그래머스] 내적 - level 1 (javascript)
Algorithm/Programmers 2022. 9. 19. 14:46

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(a, b) { return a.reduce((acc, val, i) => acc + val * b[i], 0); } | 풀이과정 음양더하기 문제와 동일하게 reduce를 사용해서 풀면 되는 간단한 문제이다. [프로그래머스] 음양 더하기 - level 1 (javascript) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.k..

article thumbnail
[프로그래머스] 없는 숫자 더하기 - level 1 (javascript)
Algorithm/Programmers 2022. 9. 19. 13:21

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(numbers) { let scope = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; return scope.filter((num) => numbers.indexOf(num) === -1).reduce((acc, val) => acc + val); } | 풀이과정 filter 메서드로 scope 배열에서 numbers 배열에 없는 숫자들을 필터링한다. 그리고 해당 수들을 reduce를 사용하여 더해주면 된다. 다른 사람 풀이 function solution..

article thumbnail
[프로그래머스] 음양 더하기 - level 1 (javascript)
Algorithm/Programmers 2022. 9. 19. 13:08

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(absolutes, signs) { return absolutes.reduce((acc, val, index) => acc + (val * (signs[index] ? 1 : -1)), 0); } | 풀이과정 reduce 함수는 처리할 요소의 인덱스를 인자로 가지고 있다. absolutes[0]의 부호는 signs[0]에, absolutes[1]의 부호는 signs[1]에 담겨져 있으므로 absolutes의 배열 요소와 해당하는 인덱스를 가지고 있는 signs 요소를 ..

article thumbnail
[프로그래머스] 약수의 개수와 덧셈 - level 1 (javascript)
Algorithm/Programmers 2022. 9. 19. 12:01

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(left, right) { let sum = 0; for(let i = left; i

article thumbnail
[프로그래머스] 가운데 글자 가져오기 - level 1 (javascript)
Algorithm/Programmers 2022. 8. 22. 17:48

| 제출 function solution(s) { return s.length % 2 !== 0 ? s[Math.floor(s.length / 2)] : s[s.length / 2 - 1] + s[s.length / 2] } | 개념 Math.floor() 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환한다. (내림)

article thumbnail
[프로그래머스] 같은 숫자는 싫어 - level 1 (javascript)
Algorithm/Programmers 2022. 8. 22. 17:44

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(arr) { return arr.filter((num, index) => num !== arr[index + 1]); } | 풀이과정 filter의 callback 함수에서 두 번째 매개변수인 index를 이용하면 쉽게 풀 수 있다. | 개념 Array.prototype.filter() 주어진 함수의 조건에 맞는 모든 요소들을 모아서 새로운 배열로 반환한다. filter의 매개변수 callback 함수 - true를 반환하면 요소를 유지하고, false를 반환하면 요소..