whatisthis?
โโ๋ฐฑ์ค 8958 javascript (node.js) ํ์ด ๋ณธ๋ฌธ
1์ฐจ์ ๋ฐฐ์ด - (6)
๐ก๋ฌธ์
"OOXXOXXOOO"์ ๊ฐ์ OXํด์ฆ์ ๊ฒฐ๊ณผ๊ฐ ์๋ค. O๋ ๋ฌธ์ ๋ฅผ ๋ง์ ๊ฒ์ด๊ณ , X๋ ๋ฌธ์ ๋ฅผ ํ๋ฆฐ ๊ฒ์ด๋ค. ๋ฌธ์ ๋ฅผ ๋ง์ ๊ฒฝ์ฐ ๊ทธ ๋ฌธ์ ์ ์ ์๋ ๊ทธ ๋ฌธ์ ๊น์ง ์ฐ์๋ O์ ๊ฐ์๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด, 10๋ฒ ๋ฌธ์ ์ ์ ์๋ 3์ด ๋๋ค.
"OOXXOXXOOO"์ ์ ์๋ 1+2+0+0+1+0+0+1+2+3 = 10์ ์ด๋ค.
OXํด์ฆ์ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ธธ์ด๊ฐ 0๋ณด๋ค ํฌ๊ณ 80๋ณด๋ค ์์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ๋ฌธ์์ด์ O์ X๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๐์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
์์ ์ถ๋ ฅ
10
9
7
55
30
< ์ฝ๋ >
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let T = Number(input[0]);
for(let i=1;i<=T;i++) {
let count = 0;
let score = 0;
let str = input[i];
let len = input[i].length;
for(let j=0; j<len; j++) {
if(str[j] == 'O') {
count++;
} else{
count = 0;
}
score += count;
}
console.log(score);
}
<KEY POINT>
- input[0]์ด ์ผ์ด์ค์ ๊ฐ์์ด๋ฏ๋ก ๋ณ์ T๋ก ์ ์ฅํ๋ค.
- ์ฒซ๋ฒ์งธ for loop๋ ๋ณ์ i(์ผ์ด์ค ํ๋์ฉ ์งํ)
- ๋๋ฒ์งธ for loop๋ ํด๋น ์ผ์ด์ค ๋ด์ ๊ธ์์(length)๋งํผ ์งํ
- if-else ๋ฌธ์ผ๋ก O์ ๊ฐ์๋งํผ count++ํ๊ณ / X๊ฐ ๋์ค๋ฉด count = 0์ผ๋ก ๋ฆฌ์
- score = score + count ํ๊ธฐ / if๋ง์กฑํ๋ฉด count + 1 -> ๋น ์ ธ๋๊ฐ์ score+= count
- ๊ฐ ์ผ์ด์ค๊ฐ ๋๋ ๋ ๋ง๋ค console.log(score) << ์์น ์ฃผ์ โโ
์ดํด๋ฅผ ์ํ Pseudo Code **
- if-else๋ฌธ์์ ๋์ ํ ๊ฒ์ ์ดํด๋ณด์.
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let T = Number(input[0]);
for(let i=1;i<=T;i++) {
let count = 0;
let score = 0;
let str = input[i];
let len = input[i].length;
for(let j=0; j<len; j++) {
if(str[j] == 'O') {
count++;
} else{
count = 0;
}
score += count;
}
console.log(score);
}
str[j]๋ str์ j๋ฒ์งธ ๊ธ์๋ฅผ ์๋ฏธํ๋ค.
len์ str์ ๊ธธ์ด์ด๋ฏ๋ก j=0๋ถํฐ j<len๊น์ง ์ฒซ๋ฒ์งธ ๊ธ์๋ถํฐ ๋ง์ง๋ง ๊ธ์๊น์ง ๊ฒ์ฌํ๋ค.
str = ' OOXXX ' ๋ผ๊ณ ์น์. len=5์ด๋ฏ๋ก j=0๋ถํฐ j=4๊น์ง ๊ฒ์ฌํ๋ฉด ๋๋ค.
if-else๋ฌธ์์
if(str[0] == 'O') ๋ฅผ ๋ง์กฑํ๋ฏ๋ก count++๊ฐ ๋์ด count = 1์ด ๋๋ค.
if๋ฌธ์ ๋น ์ ธ๋์ score = 1์ด ๋๊ณ ,
j++๊ฐ ๋์ด if(str[1] == 'O')๋ฅผ ๋ง์กฑํ๊ณ , ๋ค์ count++๊ฐ ๋์ด count = 2๋ก ๋์ ๋๋ค.
if๋ฌธ์ ๋น ์ ธ๋์ score = 1 + ( 2 ) = 3์ด ๋๊ณ ,
j++๊ฐ ๋์ด if(str[2] == 'O')๋ฅผ ๋ง์กฑํ์ง ๋ชปํ๋ฏ๋ก else ์ฝ๋๋ฅผ ์คํํ๋ค. count = 0์ผ๋ก ์ด๊ธฐํ ๋๋ฏ๋ก
else๋ฌธ์ ๋น ์ ธ๋์ score = 3 + 0 = 3์ด ๋๋ค.
์ด๋ฐ์์ผ๋ก score์ด ๋์ ๋๊ณ , X์ ๊ฒฝ์ฐ์ 0์ผ๋ก ์ด๊ธฐํ์ํค๋ ์๋ฆฌ๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ค.
score += count์
console.log(score)์ ์์น๋ฅผ ์ฃผ์ํ์.
'ALGORITHM > BOJ (Node.js)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โโ๋ฐฑ์ค 4673 javascript (node.js) ํ์ด (0) | 2022.01.10 |
---|---|
๋ฐฑ์ค 4344 javascript (node.js) ํ์ด (0) | 2022.01.04 |
๐บ๋ฐฑ์ค 1546 javascript (node.js) ํ์ด + ์คํ์ค๐งช (0) | 2022.01.04 |
โ๋ฐฑ์ค 3052 javascript (node.js) ํ์ด (0) | 2022.01.04 |
๐บ๋ฐฑ์ค 2577 javascript (node.js) ํ์ด (0) | 2022.01.04 |