https://softeer.ai/practice/6250
Softeer - ํ๋์๋์ฐจ๊ทธ๋ฃน SW์ธ์ฌํ๋ณดํ๋ซํผ
softeer.ai
(ํ์ด ์ฝ๋๋ ํฌ์คํ ๋งจ ์๋์ ์์ต๋๋ค)
์ฝ๊ฒ ๋ดค๋๋ฐ.. ๋ฌธ์ ๋ฅผ ์ฝ๋ค๋ณด๋ ๋๊ฐ ๊ผฌ์
์ถ๋ ฅ ํ์์ด ์ดํด๊ฐ x
์์ ์ธํ์ด 3์ด๋ผ ๋ ํท๊ฐ๋ ธ๋ค (๋ํ๊ฐ 3๊ฐ ๊ณ ์ ์ด๋ผ 3*3์ผ๋ก ๋์ด)
๊ฒจ์ฐ ์ดํด์๋ฃํ๊ณ ์ด์ค๋ฐ๋ณต๋ฌธ์ผ๋ก ์ผ๋จ ํ์ด๋ณด์์
์ฒซ๋ฒ์งธ ์ ์ถ -> 20๋ฒ๊น์ง๋ ํต๊ณผํ์ง๋ง 21๋ฒ๋ถํฐ ์๊ฐ์ด๊ณผ...ใ .ใ ๋ด๊ฐ๋ด๋ ๋ต์๋ ์๊ณ ๋ฆฌ์ฆ
while(sortResult.length > 0){
// sortResult์์ max ์ ์ ์ฐพ๊ณ ์ ๊ฑฐ
max = sortResult[sortResult.length-1];
sortResult.pop();
let nowIndex = 0;
// max์ ์๋ฅผ result์์ ์ฐพ๊ณ ๋ฑ์ ์ฝ์
// max ์ค๋ณต๊ฐ ํ์ธ -> ์กด์ฌ ์ ๊ฐ์ด ์ ๊ฑฐ
while(result.indexOf(max)>=0){
nowIndex = result.indexOf(max);
result[nowIndex] = -1;
contestGrade[nowIndex] = grade;
}
grade ++;
}
์ญ์. ํด์๋งต์ ์จ์ผํ ๊ฒ ๊ฐ์๋ค (๊ทผ๋ฐ JS์์ ์ด๋ป๊ฒ ์ฐ๋์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๊ณต๋ถํด์ด)
์๋ฌด๋๋ ๊ฒ์ + ์์๋ถ์ฌ ๋ฌธ์ ๋ผ indexOf ๋์ Map์ ์ฐ๋ฉด ํจ์จ์ด ํจ์ฌ ์ข์์ง ๊ฒ.
JS hashMap ํจ์ ๋ฆฌ์คํธ
value ์ฝ์ : set()
value ์ฝ๊ธฐ : get()
์กด์ฌ์ฌ๋ถ ๊ฒ์ : has()
์ญ์ : delete()
ํฌ๊ธฐ : size
hash ํ์ : for-of ๋ฌธ
hashmap ์ฌ์ฉํด์ Retry -> ๋ฐ๋ก ํด๊ฒฐ!!!!
์ ํจ์๊ฐ ๋๋ฌด ๋ง๋ค;; node js ๊ณต์๋ฌธ์์ ์๋ ๊ฒ ๊ฐ๋๋ฐ ์ด์ฌํ ์ธ์์ผ์ง ใ ใ
๋์ ํ์ด
const fs = require('fs');
const input = fs.readFileSync(0,'utf-8').trim().split('\n');
const n = Number(input[0]); // ์ฐธ๊ฐ์ ์(๊ฐ๋ก) // ๋ํ ์(์ธ๋ก) = 3์ผ๋ก ๊ณ ์ ๋จ
const results = input.splice(1,n);
let sumList = new Array(n).fill(0); // ์ฐธ๊ฐ์๋ค์ ์ ์ ์ดํฉ
let gradeList = [];
results.map(r => {
let result = r.split(' ').map(Number);
result.map((score,idx)=>{ // ์ดํฉ ๊ตฌํ๊ธฐ
sumList[idx] += score;
})
}
)
results.push(sumList.join(" ")); // sumList๋ ๋ฐฐ์ด์ด๋ผ์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
results.map((res)=>{
let result = res.trim().split(' ').map(Number);
let sortResult = [...result].sort((a,b)=>b-a); // ์๋ณธ ์ ์งํ๋ฉฐ ์ ๋ ฌ
let grade = 1;
let gradeMap = new Map(); // ์ ์&๋ฑ์ ์
for(let i=0; i<n; ++i){
if(!gradeMap.has(sortResult[i])) gradeMap.set(sortResult[i], grade);
grade++;
}
// ๊ฐ๊ฐ gradeMap ์ ์์ ํด๋นํ๋ ๋ฑ์ ๋ถ์ฌ
let contestGrade =[];
result.map((re)=>{
contestGrade.push(gradeMap.get(re));
})
gradeList.push(contestGrade);
})
for(let i=0; i<4; ++i){
let j = gradeList[i].join(" ");
console.log(j);
}