[Javascript/PGS] Lv.2 : n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/87390?language=javascript#
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 js
i=0์ผ ๋, 0~n-1 : 1,2,3,4 ...
i=1์ผ ๋, n ~ 2n-1 : 2,2,3,4, ...
i=2์ผ ๋, 2n ~ 3n-1 : 3,3,3,4 ...
์์์ ๊ท์น์ ์ฐพ์ผ๋ฉด, i์ค์์ i๋ฒ์งธ๊น์ง์ ์๋ i+1์ด๊ณ , ๊ทธ ๋ค์ ์์น๋ถํฐ๋ 1์ฉ ๋์ด๋๋ค.
์ด๊ฑธ ํ ์ค ํ ์ค ๋ง๋ค ์ ์ฉํด์ ํ์๋๋...
ํ ์ผ๋ ๋ค ๋ง์๋๋ฐ, ์ฝ๋๋ ๋ณต์กํ๊ณ ์ ์ถ ์ ์ ๋ฐ ์ ๋ ํ๋ฆฌ๊ฒ ๋์๋ค ๐ฅน
1. ์๋ชป๋ ํ์ด (60์ /100์ )
function solution(n, left, right) {
let answer = [];
let i = Math.floor(left/n);
let j = Math.floor(right/n);
while(i<=j){
let tmp = left;
for(let l=0; l<n; ++l){
if(l!=0 && left%n==0) break;
if(left%n<=i) answer.push(i+tmp%n+1);
else {
answer.push(left%n+1);
}
if(i==j && left==right) break;
left++;
}
// console.log(answer);
i++;
}
return answer;
}
์ ๋๋ก ๋ ํ์ด๋ ์๋์ ๊ฐ๋ค.
๊ท์น์ ์ ์ฐพ์์ผ ํจ ใ ใ
๊ฐ ์์น๋ฅผ x์ y ์ขํ๋ก ์๊ฐํ์ ๋, (x,y)์นธ์ ์๋ max(x+1, y+1)์ด๋ค. (์๋ ์ด๋ฏธ์ง ์ฐธ๊ณ )
์ด๋ ๊ฒ ๊ฐ๋จํ ๊ท์น์ธ๋ฐ ใ ์ ์๋ณด์์ง........
๋ชจ๋ ์นธ์ ์๋ฅผ ์ฑ์ฐ๋๊ฒ ์๋๋ผ, left๋ถํฐ right๊น์ง๋ง ๊ณ์ฐํด์ผ๊ฒ ๋ค๋ ์ฌ๊ณ ๋ ๋ง์์ผ๋
์ ๋ต์ ๊ทผ์ ํ๊ฑธ๋ก ใ ใ
์ ์ ํ์ด๋๋ก ๋ค์ ํ์ด์ 100์ ์ฑ๊ณต!
2. ์ ๋ต ํ์ดโผ๏ธ
function solution(n, left, right) {
let answer = [];
for(let i=left; i<=right; ++i){
let x = i%n;
let y = Math.floor(i/n);
answer.push(Math.max(x+1,y+1));
}
return answer;
}
์ฌ์ค ํ๋ฉด์ ์ด๊ฒ ์ ๋ ๋ฒจ 2์ผ..๋ ๋ฒจ 3 ์๋?๋ผ๊ณ ์๊ฐํ์๋๋ฐ
๊ทธ๋ฅ ๋ด๊ฐ ๋ฌด์งํ๋ ๊ฑฐ์์
๊ทธ๋ฆฌ๊ณ js๋ ๋๋์ ํ ๋ cpp๊ณผ ๋ค๋ฅด๊ฒ int ์๋ ํ๋ณํ์ด ์๋๋๊น,
๊ผญ Math.floor(๋ด๋ฆผ) ํน์ Math.round(๋ฐ์ฌ๋ฆผ)๋ฅผ ์จ์ค์ผ ํ๋ค!!!