Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- div2개
- 백준알고리즘
- 우박수열정적분
- 정렬
- 코어자바스크립트
- JS스터디
- 타겟넘버
- 지도 여러개
- 비트마스크
- Lv2
- 2023카카오블라인드코테
- 이중지도
- JS
- 5강클로저
- pccp기출문제
- 알고리즘 문제풀이
- DP
- solved.ac플래티넘
- 알고리즘문제풀이
- 프로그래머스
- 백준 알고리즘
- 최소스패닝트리
- React.StrictMode
- [pccp 기출문제]
- Lv3
- 스택
- solved.ac골드
- 과제진행하기
- 두원사이의정수쌍
- c++
Archives
- Today
- Total
호지
[프로그래머스] 숫자 짝꿍 문제풀이 JS 본문
X와 Y를 전체탐색하여 0-9가 몇번나왔는지,
listX와 listY에 각각 저장한다.
이후 9부터 0까지 X와 Y에서 둘 다 나왔던 수일 경우,
X와 Y 중 더 조금 나온 개수 만큼 answer에 더해준다.
이렇게 하면 9부터 시작하였기 때문에 자동적으로 가장 큰 수가 되고,
예외적으로 X와Y가 겹치는 숫자가 0밖에 없었을 때(answer[0] === '0')와
겹치는 숫자가 하나도 없었을때(answer==="")일때 0과 -1로 return을 한다.
function solution(X, Y) {
let answer = '',
listX = [],
listY = []
for (const x of X) {
listX[+x] = (listX[+x] || 0) + 1
}
for (const y of Y) {
listY[+y] = (listY[+y] || 0) + 1
}
for (let i = 10; i >= 0; i--) {
if (listX[i] !== 0 && listY[i] !== 0) {
for (let j = 0; j < Math.min(listX[i], listY[i]); j++) {
answer += i
}
}
}
if (answer[0] === '0') return '0'
if (answer === '') return '-1'
return answer
}
https://school.programmers.co.kr/learn/courses/30/lessons/131128
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 나머지가 1이 되는 수 찾기 문제풀이 JS (0) | 2023.08.03 |
---|---|
[프로그래머스] 성격 유형 검사하기 문제풀이 JS (0) | 2023.08.02 |
[프로그래머스] 삼총사 문제풀이 JS (0) | 2023.08.01 |
[프로그래머스] 옹알이(2) 문제풀이 JS (0) | 2023.07.31 |
[프로그래머스] 콜라 문제 문제풀이 (0) | 2023.07.31 |
Comments