Question
์ฐ๋ฆฌ๋ ์ฌ๋์ ๋ฉ์น๋ฅผ ํค์ ๋ชธ๋ฌด๊ฒ, ์ด ๋ ๊ฐ์ ๊ฐ์ผ๋ก ํํํ์ฌ ๊ทธ ๋ฑ์๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ ํ๋ค. ์ด๋ค ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๊ฐ x kg์ด๊ณ ํค๊ฐ y cm๋ผ๋ฉด ์ด ์ฌ๋์ ๋ฉ์น๋ (x, y)๋ก ํ์๋๋ค. ๋ ์ฌ๋ A ์ B์ ๋ฉ์น๊ฐ ๊ฐ๊ฐ (x, y), (p, q)๋ผ๊ณ ํ ๋ x > p ๊ทธ๋ฆฌ๊ณ y > q ์ด๋ผ๋ฉด ์ฐ๋ฆฌ๋ A์ ๋ฉ์น๊ฐ B์ ๋ฉ์น๋ณด๋ค "๋ ํฌ๋ค"๊ณ ๋งํ๋ค. ์๋ฅผ ๋ค์ด ์ด๋ค A, B ๋ ์ฌ๋์ ๋ฉ์น๊ฐ ๊ฐ๊ฐ (56, 177), (45, 165) ๋ผ๊ณ ํ๋ค๋ฉด A์ ๋ฉ์น๊ฐ B๋ณด๋ค ํฐ ์ ์ด ๋๋ค. ๊ทธ๋ฐ๋ฐ ์๋ก ๋ค๋ฅธ ๋ฉ์น๋ผ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ ํ ์ ์๋ ๊ฒฝ์ฐ๋ ์๋ค. ์๋ฅผ ๋ค์ด ๋ ์ฌ๋ C์ D์ ๋ฉ์น๊ฐ ๊ฐ๊ฐ (45, 181), (55, 173)์ด๋ผ๋ฉด ๋ชธ๋ฌด๊ฒ๋ D๊ฐ C๋ณด๋ค ๋ ๋ฌด๊ฒ๊ณ , ํค๋ C๊ฐ ๋ ํฌ๋ฏ๋ก, "๋ฉ์น"๋ก๋ง ๋ณผ ๋ C์ D๋ ๋๊ตฌ๋ ์๋๋ฐฉ๋ณด๋ค ๋ ํฌ๋ค๊ณ ๋งํ ์ ์๋ค.
N๋ช ์ ์ง๋จ์์ ๊ฐ ์ฌ๋์ ๋ฉ์น ๋ฑ์๋ ์์ ๋ณด๋ค ๋ "ํฐ ๋ฉ์น"์ ์ฌ๋์ ์๋ก ์ ํด์ง๋ค. ๋ง์ผ ์์ ๋ณด๋ค ๋ ํฐ ๋ฉ์น์ ์ฌ๋์ด k๋ช ์ด๋ผ๋ฉด ๊ทธ ์ฌ๋์ ๋ฉ์น ๋ฑ์๋ k+1์ด ๋๋ค. ์ด๋ ๊ฒ ๋ฑ์๋ฅผ ๊ฒฐ์ ํ๋ฉด ๊ฐ์ ๋ฉ์น ๋ฑ์๋ฅผ ๊ฐ์ง ์ฌ๋์ ์ฌ๋ฌ ๋ช ๋ ๊ฐ๋ฅํ๋ค. ์๋๋ 5๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง ์ง๋จ์์ ๊ฐ ์ฌ๋์ ๋ฉ์น์ ๊ทธ ๋ฑ์๊ฐ ํ์๋ ํ์ด๋ค.
์ ํ์์ C๋ณด๋ค ๋ ํฐ ๋ฉ์น์ ์ฌ๋์ด ์์ผ๋ฏ๋ก C๋ 1๋ฑ์ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ A, B, D ๊ฐ๊ฐ์ ๋ฉ์น๋ณด๋ค ํฐ ์ฌ๋์ C๋ฟ์ด๋ฏ๋ก ์ด๋ค์ ๋ชจ๋ 2๋ฑ์ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ E๋ณด๋ค ํฐ ๋ฉ์น๋ A, B, C, D ์ด๋ ๊ฒ 4๋ช ์ด๋ฏ๋ก E์ ๋ฉ์น๋ 5๋ฑ์ด ๋๋ค. ์ ๊ฒฝ์ฐ์ 3๋ฑ๊ณผ 4๋ฑ์ ์กด์ฌํ์ง ์๋๋ค. ์ฌ๋ฌ๋ถ์ ํ์ N๋ช ์ ๋ชธ๋ฌด๊ฒ์ ํค๊ฐ ๋ด๊ธด ์ ๋ ฅ์ ์ฝ์ด์ ๊ฐ ์ฌ๋์ ๋ฉ์น ๋ฑ์๋ฅผ ๊ณ์ฐํ์ฌ ์ถ๋ ฅํด์ผ ํ๋ค.
์ ๋ ฅ
์ฒซ ์ค์๋ ์ ์ฒด ์ฌ๋์ ์ N์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ด์ง๋ N๊ฐ์ ์ค์๋ ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ์ ํค๋ฅผ ๋ํ๋ด๋ ์์ ์ ์ x์ y๊ฐ ํ๋์ ๊ณต๋ฐฑ์ ๋๊ณ ๊ฐ๊ฐ ๋ํ๋๋ค.
์ถ๋ ฅ
์ฌ๋ฌ๋ถ์ ์ ๋ ฅ์ ๋์ด๋ ์ฌ๋์ ๋ฉ์น ๋ฑ์๋ฅผ ๊ตฌํด์ ๊ทธ ์์๋๋ก ์ฒซ ์ค์ ์ถ๋ ฅํด์ผ ํ๋ค. ๋จ, ๊ฐ ๋ฉ์น ๋ฑ์๋ ๊ณต๋ฐฑ๋ฌธ์๋ก ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค.
์ ๋ ฅ์์
5
55 185
58 183
88 186
60 175
46 155
์ถ๋ ฅ์์
2 2 1 2 5
My Code
const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n');
const len = Number(input.shift());
let arr = [];
// ์ด์ค๋ฐฐ์ด ์ ์ฅ
input.forEach((ele) => {
arr.push(ele.split(' ').map(Number));
})
let answer = [];
// ๋น๊ต
for (let i = 0; i < len; i++) {
let counter = 0;
for (let j = 0; j < len; j++) {
if (i !== j) {
if (arr[i][0] < arr[j][0] && arr[i][1] < arr[j][1]) {
counter++;
}
}
}
answer.push(counter + 1);
}
console.log(answer.join(' '))
๋ง์์ต๋๋ค!!
HOW? (ํ์ด๋ฐฉ๋ฒ)
๋ธ๋ฃจํธํฌ์ค(์์ ํ์)๋ฅผ ์ด์ฉํ ํ์ด๋ฐฉ๋ฒ
๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ๊ณ์ฐํด๋ณด๋ ์๊ณ ๋ฆฌ์ฆ ํ์ด ๋ฐฉ๋ฒ ์์ธํ ๋ด์ฉ์ ์ ํฌ์คํ ์ผ๋ก!!
- ์ด์ค for๋ฌธ์ผ๋ก ๋ฐฐ์ด ์์ ๊ฐ์ด ๋ค๋ฅธ ๋ชจ๋ ๊ฐ๋ค๊ณผ ๋น๊ตํ๊ฒ ํจ
- ๋ชธ๋ฌด๊ฒ๋ ํค๊ฐ ๋น๊ตํ๋ ๊ฐ๋ณด๋ค ์๋ค๋ฉด counter +1 ๋๋๋ก ํจ ( ๋ชธ๋ฌด๊ฒ๋ ํค๊ฐ ํฐ ์ฌ๋์ด ๋ช ๋ช ์ธ์ง ๊ณ์ฐ )
- ์๋ก ๋ง๋ ๋ฐฐ์ด์ ๋ฑ์๋ฅผ push ํ ํ string์ผ๋ก ๋ณํํด ์ถ๋ ฅ
๋ชจ์กฐ๋ฆฌ ๋น๊ตํด์ ๋ต์ ์ฐพ์๋ธ๋ค!
์ฒ์์๋ counter์ len ๊ฐ์ ์ฃผ๊ณ ๋นผ๋ ๊ฑธ๋ก ํ๋ค๊ฐ ์คํจํ๋ค.
์๊ณ ๋ฆฌ์ฆ ๋ฐฉ๋ฒ์ ์๊ฒ ๋๋ฐ ์ฝ๋๋ก ์จ์ง์ง ์์์ ๋ต๋ตํ ๋๊ฐ ์๋ค.
์ ์๋ ๊ฒ ์กฐ๋ ๊ฒ ํ๋ฉด ๋ผ๊ฒ ๊ตฐ!
์ฝ๋ : ์ ์๋ผ
์ด๋ด ๋์ผ์๋ก ๋ฐฉ๋ฒ์ ๊ณ์ํ๋ ๊ฑฐ๋ฐ์ ์๋ค...!
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 11478๋ฒ : ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ฐ์ (0) | 2022.06.15 |
---|---|
[JS] ๋ฐฑ์ค 10816๋ฒ : ์ซ์ ์นด๋ 2 (0) | 2022.06.12 |
[JS] ๋ฐฑ์ค 10815๋ฒ : ์ซ์ ์นด๋ (0) | 2022.06.05 |
[JS] ๋ฐฑ์ค 10841๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2022.05.28 |
[JS] ๋ฐฑ์ค 1931 ๋ฒ : ํ์์ค ๋ฐฐ์ (feat.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.05.24 |