ํ์๋ค์ด ๋ฝ์ ํ๋ณด๋ฅผ ์
๋ ฅ๋ฐ์์,
๋ฝํ ํ์์ ์ด๋ฆ๊ณผ ๋ฐ์ ํ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
//์
๋ ฅ
์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ
//์ถ๋ ฅ
์๋ฆผ(์ด)๊ฐ ์ด 3ํ๋ก ๋ฐ์ฅ์ด ๋์์ต๋๋ค.
๋ฏธ๋ฆฌ ! ์๊ฐํด๋ด์ผํ๋๊ฒ
- ์๋ฆผ : 3ํ/ ์์ธ : 2ํ/ ๋ณด์ธ : 1ํ/ ํ์ง : 2ํ/ ์์ผ : 1ํ -> ์ด ๊ตฌ์กฐ๋ก ๋ํ๋ผ๋ ค๋ฉด ๊ฐ์ฒดํ๊ธฐ๊ฐ ํธ๋ฆฌํจ
vote = {
์๋ฆผ : 3,
์์ธ : 2,
๋ณด์ธ : 1,
ํ์ง : 2,
์์ผ : 1
}
- ๊ฐ์ฒด ์ ๊ทผ๋ฐฉ์ ์๊ฐํด๋ณด๊ธฐ
1. ๋ฌธ์์ด๋ก ๋ฐ๋ ์
๋ ฅ์ ๋ฐฐ์ด๋ก ๋๋ ์ค๋ค -> .split(" "), key์ value๋ฅผ ๋ด์ ๋น๊ฐ์ฒด ๋ง๋ค๊ธฐ -> let result = {};
// let array = prompt().split(" ");
let array = '์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ'.split(" ");
let result = {};
let winner;
- for..of ์ ๋๋ ค์ค๋ค. (for..in -> index ์ถ๋ ฅ/ for..of -> element ์ถ๋ ฅ)
// let array = prompt().split(" ");
let array = '์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ'.split(" ");
let result = {};
let winner;
for(let el of array) {
let val = el;
console.log(val) // ์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ
}
- result[key] = value ๊ฐ์ ์ ๊ทผํ๋ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
// let array = prompt().split(" ");
let array = '์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ'.split(" ");
let result = {};
let winner;
for(let el of array) {
let val = el;
result[val] = result[val] === undefined ? 1 : result[val] += 1 // result[val]์ ์ฒ์์ ๊ทผ์ undefined ๋ฅผ ์ถ๋ ฅ -> 1 / result[val] ์ 1์ด๋๋ฉฐ ๋ค์์ํํ๊ฒ ๋จ
}
- ์์ ์ ์ธํด์ค winner์ ํค๊ฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฉ์๋ Object.keys()
๋ฉ์๋ reduce()๋ฅผ ๋งค๊ฐ๋ณ์์ ๋ฃ์ด ์ผํญ์ฐ์ฐ์๋ฅผ ํตํด 1๋ฑ์ ์ ๋ณํจ
// let array = prompt().split(" ");
let array = '์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ'.split(" ");
let result = {};
let winner;
for(let el of array) {
let val = el;
result[val] = result[val] === undefined ? 1 : result[val] += 1 // result[val]์ ์ฒ์์ ๊ทผ์ undefined ๋ฅผ ์ถ๋ ฅ -> 1 / result[val] ์ 1์ด๋๋ฉฐ ๋ค์์ํํ๊ฒ ๋จ
}
console.log(result);// { '์๋ฆผ': 3, '์์ธ': 2, '๋ณด์ธ': 1, 'ํ์ง': 2, '์์ผ': 2 }
winner = Object.keys(result)
console.log(winner) // [ '์๋ฆผ', '์์ธ', '๋ณด์ธ', 'ํ์ง', '์์ผ' ]
winner = Object.keys(result).reduce(function(a,b){
return result[a] > result[b] ? a : b; // ์ฌ๊ธฐ์ ํ์์๊ฐ ๊ฐ๋ฆผ
})
console.log(winner) //์๋ฆผ
- console.log์ ๋ฆฌํฐ๋ด๋ก ์ฐ์ด์ค๋ค. (๋ชํ์ธ์ง๋ value ๊ฐ ํ์ฐํ์ฌ ์ถ๋ ฅ)
// let array = prompt().split(" ");
let array = '์๋ฆผ ์๋ฆผ ์๋ฆผ ์์ธ ๋ณด์ธ ํ์ง ํ์ง ์์ผ ์์ธ ์์ผ'.split(" ");
let result = {};
let winner;
for(let el of array) {
let val = el;
result[val] = result[val] === undefined ? 1 : result[val] += 1 // result[val]์ ์ฒ์์ ๊ทผ์ undefined ๋ฅผ ์ถ๋ ฅ -> 1 / result[val] ์ 1์ด๋๋ฉฐ ๋ค์์ํํ๊ฒ ๋จ
}
winner = Object.keys(result).reduce(function(a,b){
return result[a] > result[b] ? a : b;
})
console.log(`${winner}์ด(๊ฐ) ์ด ${result[winner]}ํ๋ก ๋ฐ์ฅ์ด ๋์์ต๋๋ค`)
์กฐ๊ธ์ ์๋ํด๋ด๋ ์ข์์
- ๋ฌผ๋ก new Set์ ์ด์ฉํ์ฌ ๊ฒน์น๋๊ฑฐ ์์ด ๋ฐ๋ก key ๊ฐ์ผ๋ก ๋ง๋ค์ด์ ํด๋๋จ