Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
์ ์ n, left, right๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ค์ ๊ณผ์ ์ ๊ฑฐ์ณ์ 1์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ ์ ํฉ๋๋ค.
- nํ n์ด ํฌ๊ธฐ์ ๋น์ด์๋ 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.
- i = 1, 2, 3, ..., n์ ๋ํด์, ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.
- 1ํ 1์ด๋ถํฐ iํ i์ด๊น์ง์ ์์ญ ๋ด์ ๋ชจ๋ ๋น ์นธ์ ์ซ์ i๋ก ์ฑ์๋๋ค.
- 1ํ, 2ํ, ..., nํ์ ์๋ผ๋ด์ด ๋ชจ๋ ์ด์ด๋ถ์ธ ์๋ก์ด 1์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.
- ์๋ก์ด 1์ฐจ์ ๋ฐฐ์ด์ arr์ด๋ผ ํ ๋, arr[left], arr[left+1], ..., arr[right]๋ง ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ ์ง์๋๋ค.
์ ์ n, left, right๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ฃผ์ด์ง ๊ณผ์ ๋๋ก ๋ง๋ค์ด์ง 1์ฐจ์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 1 ≤ n ≤ 107
- 0 ≤ left ≤ right < n2
- right - left < 105
๐ก ์์ด๋์ด
ํ๋๋๋ก ํ๋ฉด ์ฝ์ด๋คํ + ์๊ฐ์ด๊ณผ...
์ฒ์์ 1์ฐจ์ ๋ฐฐ์ด์ ๊ตฌํด์ sliceํ๋๋ฐ ์ง๊ธ ์๊ฐํ๋๊น ๋น์ฐํ ์๊ฐ์ด๊ณผ ๋๊ฒ ๋ค๐ฅน
์ง๋ฌธํญ ๋ณด๋๊น left ๊ฐ์ /n, %n ์ ์ ํ๋ฉด ์ ์ฒด ๋ฐฐ์ด์ ์ ๊ตฌํ๊ณ ๊ตฌํ ์ ์๋ค๊ณ ํด์ ์๊ฐํด๋ดค๋ค..
์ผ๋จ left๋ถํฐ right ๊ฐ์๋งํผ ์์๊ฐ ์์ด์ผํ๋๊น ๊ทธ๋งํผ for๋ฌธ ๋๋ฆฌ๊ณ ,
left ๊ฐ์ 1์ฐจ์ ๋ฐฐ์ด์ ์ด๋๊ฐ๋ฅผ ๊ฐ๋ฅดํค๋๋ฐ, ์ผ์ฐจ์ ๋ฐฐ์ด๋ก ๋ณํํ๊ฒ์ด๋ฏ๋ก ๊ทธ ๊ฐ์ด n ๋ณด๋ค ํด ์ ์๋ค.
๊ทธ๋์ ๊ทธ ๊ฐ์ n์ผ๋ก ๋๋ ์ฃผ๋ฉด ๋ชซ์ด ๊ทธ ๊ฐ์ ํ, ์ฆ ๋ช๋ฒ์งธ ์์์ ์๋์ง ์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ n์ผ๋ก ๋๋ ๋๋จธ์ง๋ ๊ทธ ๊ฐ์ ์ด, ์ฆ ๊ทธ ์์๊ฐ ํ ์์์์ ๋ช๋ฒ์งธ์ ์๋์ง ์ ์ ์๋ค.
i๋ก ๊ฐ์๋ค ์ฑ์ธ ๋ ๊ท์น์ ๋ณด๋ฉด x,y ๊ฐ ์ค ํฐ ๊ฐ์ +1์ ๋ํ ๊ฐ์ด ๊ทธ ์ธ๋ฑ์ค์ ์์๊ฐ ๋๋ค.
๊ทธ๋์ ๋ด๊ฐ ๊ตฌํ x, y์์ max๋ฅผ ๊ตฌํด์ 1๋ํ ๊ฐ์ answer์ pushํด์ค๋ค..
์ ์ด๋ ต๋ค...
โ๏ธ ํ์ด
function solution(n, left, right) {
var answer = [];
for(let i=left; i<=right; i++){
let yIdx = Math.floor(i/n);
let xIdx = i%n;
answer.push(Math.max(yIdx, xIdx) + 1);
}
return answer;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ ๊ฐ์ (0) | 2023.03.03 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ ๊ฐ๋ฐ (0) | 2023.03.02 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํํ (0) | 2023.02.28 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.02.28 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ (0) | 2023.02.27 |