JS 100제 문제 38 호준이의 아르바이트

<풀이 코드>

	function candy(score){
		var cnt = {};
		var result = 0;
		
		for(var i in score){
			cnt[score[i]] = 0;
		}
		
		for(var j in score){
			for(var k in Object.keys(cnt)){
				if(score[j] == Object.keys(cnt)[k]){
					cnt[score[j]] += 1;
				}	
			}
		}
		
		//3등까지만
		for(var c = Object.keys(cnt).length; c>Object.keys(cnt).length-3; c--){
			result += cnt[Object.keys(cnt)[c-1]];
		}
		return result;
	}
	
	var score = prompt().split(' ');
	
	console.log(candy(score));

답안 코드가 훨씬 간결하므로, 담부터는 저 방식으로 해결해 보아야겠다

<답안 코드>

const scores = prompt('점수입력').split(' ').map(function(n){
  return parseInt(n, 10);
});

scores.sort((a, b) => {
  return a-b;
});

let count = 0;
let arr = [];

while (arr.length < 3) {
  let n = scores.pop();
  if (!arr.includes(n)){
    arr.push(n);
  }
  count += 1;
}

console.log(count);

좋은 웹페이지 즐겨찾기