알고리즘 풀이
[JAVASCRIPT] 백준 1475번 문제 풀이
Lv1_junior_dev
2022. 12. 10. 12:24
❗ 조건
1. 6은 9로 뒤집어 쓸 수 있고 9는 6으로 뒤집어서 쓸 수 있다 = 6,9는 동일한 숫자를 취급한다는 말이기 때문에 6의 누적 값과 9의 누적 값을 더한 후 2로 나눈 뒤 반올림 하면 6과 9를 동일한 숫자로 취급할 수 있음
2. 카드팩에서 가장 많이 쓰는 수를 기준으로 하면 카드팩을 몇 장 쓰는지 알 수 있음
let input = require('fs').readFileSync('dev/stdin').toString().trim().split('');
function objectFunc(arr) {
let card = {6:0, 9:0}
for(const el of arr) {
card[el] = (card[el] || 0) + 1;
}
card[6] = Math.ceil((card[6] + card[9])/2)
card[9] = 0
return card;
}
console.log(Math.max.apply(null, Object.values(objectFunc(input))))
❗ 풀이
objectFunc()
1. 함수 아래 연산에서 인덱스 6번과 9번 없을 때 undefined 값을 방지하기 위해서 미리 객체에 6과 9의 key에 대한 value를 0으로 지정
2. input값을 기반으로 key 생성하면서 해당 key값이 있을 경우 그 key값에 value값에 1을 더함
3. "조건에 대한 풀이 1번 참고"
4. card object를 return
5. card object의 최대값을 출력