호지

[프로그래머스] 숫자 짝꿍 문제풀이 JS 본문

알고리즘/프로그래머스

[프로그래머스] 숫자 짝꿍 문제풀이 JS

_hoji

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

Comments