Question
๋ฐฑ์ค 1065๋ฒ : ํ์
์ด๋ค ์์ ์ ์ X์ ๊ฐ ์๋ฆฌ๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฌ๋ค๋ฉด, ๊ทธ ์๋ฅผ ํ์๋ผ๊ณ ํ๋ค. ๋ฑ์ฐจ์์ด์ ์ฐ์๋ ๋ ๊ฐ์ ์์ ์ฐจ์ด๊ฐ ์ผ์ ํ ์์ด์ ๋งํ๋ค. N์ด ์ฃผ์ด์ก์ ๋, 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ์์
110
์ถ๋ ฅ์์
99
๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๊ฒ๋ถํฐ ์ฐ์ ์ด์๋ค ๐
๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ์ด์ ์ ์ด๋ฏธ ๋ฐฑ์ค ์ฌ์ดํธ์์ ์ด ๋ฌธ์ ์ ๋ํด ์ง๋ฌธํ ์ฌํญ์ด ์์๋ค.
ํ์๋ฆฌ ์ซ์์ ๋ ์๋ฆฌ ์ซ์๊ฐ ์์ด์ด ๋๋ค๋ ์ ์ ๊ฐ ์์๊ธฐ์ ๋ฌธ์ ๋ฅผ ํ ์ ์์๋ค.
์ ์ง๋ฌธ์ ๋ต๋ณ์๋ ์์ธํ ๋์์์ง๋ง
๋ค์ ํ๋ฒ ์ค๋ช ํด๋ณด์๋ฉด
1 ~ 9 ๋ ์ซ์๊ฐ ํ๋๋ง ์๋ ๊ธธ์ด๊ฐ 1์ธ ๋ฑ์ฐจ์์ด
10 ~ 99 ๋ ์ซ์๊ฐ ๋๊ฐ ์๋ ๊ธธ์ด๊ฐ 2์ธ ๋ฑ์ฐจ์์ด
1 5 ๋ผ๊ณ ํ๋ฉด ๊ณต์ฐจ๊ฐ 4์ธ ๋ฑ์ฐจ์์ด
9 2 ๋ผ๊ณ ํ๋ฉด ๊ณต์ฐจ๊ฐ 7์ธ ๋ฑ์ฐจ์์ด
My Code
์ฒซ ๋ฒ์งธ๋ก ์ ์ถํ ๋ต์์ ํ๋ ธ๋ค๐
let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');
let num = Number(input[0]);
function solution(num) {
let stNum = String(num);
let dif1 = Number(stNum[1]) - Number(stNum[0]);
let dif2 = Number(stNum[2]) - Number(stNum[1]);
let count = 0;
for (let i = 1; i <= num ; i ++) {
if(i < 100) {
count ++;
} else if (i => 100 && i < 1000 ){
if (dif1 === dif2) {
count ++;
}
}
}
return count;
}
console.log(solution(num))
ํ๋ ธ์ต๋๋ค
WHY?
์ซ์๋ฅผ ์คํธ๋ง์ผ๋ก ๋ฐ๊พธ๊ณ ๋ฑ์ฐจ์์ด์ธ์ง ํ์ธํ๋ ๊ณผ์ ์ for๋ฌธ ์์์ ๋๋ฆฌ์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ์ ๋ ฅ๋๋ ์ซ์๊ฐ ํ์์ด๋ฉด 100 ์ด์ ๋๋ ๋ชจ๋ ์ซ์๋ค์ด count์ ์ฐํ๋ ์ฌํ๊ฐ ์ผ์ด๋ฌ๋ค.
๊ฒ๋ค๊ฐ ์ ๋ ฅ๋ฐ์ ์ซ์ N์ ์คํธ๋ง์ผ๋ก ๋ณํํ์ผ๋ count๊ฐ ์ ๋๋ก ์ผ์ด๋ ์ ์๋ ์ํฉ์ด์๋ค.
๋๋ฒ์งธ๋ก ์ ์ถํ ๋ต์
let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');
let num = Number(input[0]);
function solution(num) {
let count = 0;
for (let i = 1; i <= num ; i ++) {
if(i < 100) {
count ++;
} else if (i => 100 && i < 1000 ){
let stNum = String(i);
let dif1 = Number(stNum[1]) - Number(stNum[0]);
let dif2 = Number(stNum[2]) - Number(stNum[1]);
if (dif1 === dif2) {
count ++;
}
}
}
return count;
}
console.log(solution(num));
๋ง์์ต๋๋ค!!
HOW? (ํ์ด๋ฐฉ๋ฒ)
- ํ์์ ๊ฐ์๋ฅผ ํ ๋นํ ๋ณ์ count๋ฅผ ์ ์ธํ๋ค.
- ํจ์ ์์ for๋ฌธ์ ํ์์ ํฌ๊ธฐ๋งํผ ๋๋ฆฐ๋ค.
- ๋ง์ฝ์ ์ซ์๊ฐ 100๋ณด๋ค ์์ผ๋ฉด ๋ฑ์ฐจ ์์ด์ด ์ฑ๋ฆฝ๋๋ฏ๋ก count์ ๊ทธ ๊ฐ์ ๋ํด์ค๋ค.
- ์ซ์๊ฐ 100 ์ด์์ด๊ฑฐ๋ 1000 ๋ฏธ๋ง์ด๋ฉด
- ์ซ์์ ํ์ ์ ์คํธ๋ง์ผ๋ก ๋ฐ๊พธ๊ณ
- ๊ฐ๊ฐ ์๋ฆฟ์์ ๊ณต์ฐจ๋ฅผ ๊ตฌํ ๊ฐ์ dif1, dif1 ๋ณ์์ ํ ๋นํ๋ค
- ๊ณต์ฐจ์ ๊ฐ์ด ๊ฐ๋ค๋ฉด count์ ๊ฐ์ ๋ํด์ค๋ค.
โก๏ธ %, / ๋ฅผ ์ด์ฉํด์ ๋ฐฑ์์๋ฆฌ์ ์ญ์์๋ฆฌ ์ซ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง ๋๋ ์คํธ๋ง์ผ๋ก ๋ฐ๊ฟ์ ๋นผ์ค๋๊ฒ ๋จธ๋ฆฟ์์์ ๋ ๊ฐํธํ๋ค.
์๊ฐ๋ณด๋ค ์์ค์ฝ๋๊ฐ ์ง์ ๋ถํด ๋ณด์ฌ ๊ณ ๋ฏผ์ด์๋ค.
๋ค๋ฅธ ๋ถ๋ค์ ์ด๋ป๊ฒ ํ์ จ๋ ๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ๋๋ ๋น์ทํ๊ฒ ํธ์ ๋ถ์ด ๊ณ์ จ๋ค.
ํ์ง๋ง ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋ ์ข์๋ค.
contine๋ฅผ ์ฌ์ฉํ์ จ๊ธฐ ๋๋ฌธ์ด์๋ค.
continue ๋ฌธ์ ํ์ฌ ๋๋ ๋ ์ด๋ธ์ด ์ง์ ๋ ๋ฃจํ์ ํ์ฌ ๋ฐ๋ณต์์ ๋ช ๋ น๋ฌธ์ ์คํ์ ์ข ๋ฃํ๊ณ ๋ฐ๋ณต๋ฌธ์ ์ฒ์์ผ๋ก ๋์๊ฐ์ฌ ๋ฃจํ๋ฌธ์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋๋ if๋ฌธ์์ ๋ if๋ฌธ ์์ด ์๋ค.
์ด ๋ถ๋ถ์ continue๋ฅผ ๋ฃ์ด์ ์์ ํด์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ์์ง๋ค.
function solution(num) {
let count = 0;
for (let i = 1; i <= num ; i ++) {
let stNum = String(i);
let dif1 = Number(stNum[1]) - Number(stNum[0]);
let dif2 = Number(stNum[2]) - Number(stNum[1]);
if(i < 100) {
count ++;
continue;
}
if (dif1 === dif2) {
count ++;
}
}
return count;
}
console.log(solution(num));
์ข ๋ ๋ค๋ฌ์ด์ง ์ฝ๋๊ฐ ๋์๋ค Fancy~ ๐
ํจ์๋ก ์ค๋ฉด์ ๋ฌธ์ ๊ฐ ๊ฐ์๊ธฐ ์ด๋ ค์์ง ๊ธฐ๋ถ์ด ๋๋๊ฑด ๊ธฐ๋ถํ์ด๊ฒ ์ง?!
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 2908๋ฒ : ์์ (0) | 2022.05.04 |
---|---|
[JS] ๋ฐฑ์ค 2675๋ฒ : ๋ฌธ์์ด ๋ฐ๋ณต (0) | 2022.04.26 |
[JS] ๋ฐฑ์ค 1546๋ฒ : ํ๊ท (0) | 2022.04.22 |
[JS] ๋ฐฑ์ค 3052๋ฒ : ๋๋จธ์ง (0) | 2022.04.20 |
[JS] ๋ฐฑ์ค 2562๋ฒ : ์ต๋๊ฐ (0) | 2022.04.18 |