https://www.acmicpc.net/problem/27160
const filePath = process.platform === "linux" ? 0 : "./input.txt";
let [N, ...arr] = require("fs").readFileSync(filePath).toString().trim().split("\n");
let dict = {}
arr.forEach(item => {
const [fruit, num] = item.split(' ')
if (dict.hasOwnProperty(fruit)){
// console.log(dict)
dict[fruit] = dict[fruit] + Number(num)
}else{
dict[fruit] = Number(num)
}
})
if (Object.values(dict).includes(5)){
console.log("YES")
}else{
console.log("NO")
}
dict
객체를 사용하여 과일 종류를 키로, 과일 개수를 값으로 저장했습니다. 이를 통해 빠르게 과일 개수를 누적할 수 있습니다.Object.values(dict).includes(5)
로 정확히 5개인 과일이 있는지 확인하여 답을 도출합니다.초기화 개선: 과일 종류가 정해져 있으므로, 초기에 각 과일의 개수를 0으로 설정하는 방법도 있습니다.
const dict = {
STRAWBERRY: 0,
BANANA: 0,
LIME: 0,
PLUM: 0
};
오늘은 JavaScript에서 객체를 활용하여 입력 데이터에 따라 카운트를 누적하는 방법을 익혔습니다. 특히, 배열의 각 요소를 순회하며 조건에 따라 객체의 값을 업데이트하고, 최종적으로 원하는 조건을 충족하는지 확인하는 로직을 구현했습니다.
또한, 문제를 풀 때 입력 데이터를 어떻게 효율적으로 처리할지, 그리고 중간 과정이 아닌 최종 결과에 초점을 맞춰야 하는 상황을 구분하는 것이 중요하다는 것을 깨달았습니다. 이 문제에서는 모든 카드를 펼친 후의 상태를 고려해야 했기 때문에, 각 단계별로 조건을 확인하는 것이 아니라 최종 누적 값을 기반으로 판단해야 했습니다.