프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<STUDY>
📢 문제 📢
두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다).
X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다.
X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다.
두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 완성해주세요.
제한사항
- 3 ≤ X, Y의 길이(자릿수) ≤ 3,000,000입니다.
- X, Y는 0으로 시작하지 않습니다.
- X, Y의 짝꿍은 상당히 큰 정수일 수 있으므로, 문자열로 반환합니다.
<전체 코드>
function solution(X, Y) {
let hashX = new Array(10).fill(0);
let hashY = new Array(10).fill(0);
X.split("").forEach(i => hashX[i]++);
Y.split("").forEach(i => hashY[i]++);
const answer = hashX.reduce((result, item, index) => {
if (item > 0 && hashY[index] > 0) {
const str = index.toString().repeat(Math.min(item, hashY[index]));
return result.concat(str);
}
return result;
}, []);
const result = answer.reverse().join("");
if (result === '') return "-1";
if (result[0] === "0") return "0";
return result;
}
해시 테이블을 사용하여 풀면 되는 문제였다.
아직 문제를 보고 자료구조에 대해서 바로 떠오르지 않아서 조금 답답하지만(?
그래도 열심히 해야겠다.
화이팅!
🔆프로그래머스 Lv.1 숫자 짝꿍🔆
ez1n - Overview
Front-End Developer. ez1n has 16 repositories available. Follow their code on GitHub.
github.com
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스_자바스크립트] Lv.2 당구 연습 / math, 좌표 이동, 대칭 (2) | 2023.03.21 |
---|---|
[프로그래머스_자바스크립트] Lv.1 포켓몬 / 해시 (Hash) (0) | 2023.01.26 |
[프로그래머스_자바스크립트] Lv.1 햄버거 만들기 (0) | 2023.01.22 |
[프로그래머스_자바스크립트] Lv.1 개인정보 수집 유효기간 (0) | 2023.01.21 |
[프로그래머스_자바스크립트] Lv.1 기사단원의 무기 / 약수 갯수 (0) | 2023.01.19 |