๐ 1. ๋ฌธ์
[Programmers, Level1] ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์?
๊ธธ์ด๊ฐ n์ด๊ณ , ์๋ฐ์๋ฐ์๋ฐ์โฆ.์ ๊ฐ์ ํจํด์ ์ ์งํ๋ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํ์ธ์. ์๋ฅผ๋ค์ด n์ด 4์ด๋ฉด ์๋ฐ์๋ฐ์ ๋ฆฌํดํ๊ณ 3์ด๋ผ๋ฉด ์๋ฐ์๋ฅผ ๋ฆฌํดํ๋ฉด ๋ฉ๋๋ค.
์ ํ ์กฐ๊ฑด
n์ ๊ธธ์ด 10,000์ดํ์ธ ์์ฐ์์
๋๋ค.
n | return |
---|---|
3 | โ์๋ฐ์โ |
4 | โ์๋ฐ์๋ฐโ |
โ ํ์ด
function solution(n) {
let arr = [];
for (let i = 0; i < n; i++) {
i % 2 ? arr.push("๋ฐ") : arr.push("์");
}
const answer = arr.join("");
return answer;
}
- ๋ค๋ฅธ ํ์ด์์๋
repeat
๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ฌ๋๋ ๊ฝค ์์๋ค.
str.repeat(count)
: ์ฃผ์ด์ง ํ์(count)๋งํผ ๋ฐ๋ณตํด ๋ถ์ด ์๋ก์ด ๋ฌธ์์ด์ด๋ค.(MDN)
(MDN์ ๋ณด๋ IE์์๋ ํธํ์ด ์๋๋ค..^^ํํ..)
(+) ๋ฒ์ธ๋ก ๋๊ฐ ์๋ฐ์๋ฐ์๋ฐ์ ๊ธธ๊ฒ ์์ฑํด์ ๋ณ์์ ํ ๋นํ๊ณ substring์ผ๋ก ๋ฌธ์์ด์ ์๋ฅธ๊ฑธ๋ณด๊ณ ์๊ฒผ..ใ ใ )
๐ 2. ๋ฌธ์
[Programmers, Level1] ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์
๋๋ฌธ์์ ์๋ฌธ์๊ฐ ์์ฌ์๋ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋๋ค. s์ โpโ์ ๊ฐ์์ โyโ์ ๊ฐ์๋ฅผ ๋น๊ตํด ๊ฐ์ผ๋ฉด True, ๋ค๋ฅด๋ฉด False๋ฅผ return ํ๋ solution๋ฅผ ์์ฑํ์ธ์. โpโ, โyโ ๋ชจ๋ ํ๋๋ ์๋ ๊ฒฝ์ฐ๋ ํญ์ True๋ฅผ ๋ฆฌํดํฉ๋๋ค. ๋จ, ๊ฐ์๋ฅผ ๋น๊ตํ ๋ ๋๋ฌธ์์ ์๋ฌธ์๋ ๊ตฌ๋ณํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด s๊ฐ pPoooyY๋ฉด true๋ฅผ returnํ๊ณ Pyy๋ผ๋ฉด false๋ฅผ returnํฉ๋๋ค.
์ ํ์ฌํญ
๋ฌธ์์ด s์ ๊ธธ์ด : 50 ์ดํ์ ์์ฐ์
๋ฌธ์์ด s๋ ์ํ๋ฒณ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
s | answer |
---|---|
โpPoooyYโ | true |
โPyyโ | false |
โ ํ์ด
function solution(s) {
const arr = s.toUpperCase().split("");
const pArr = arr.filter((item) => {
return item === "P";
});
const yArr = arr.filter((item) => {
return item === "Y";
});
return pArr.length - yArr.length === 0;
}
๐ Best - 1
function numPY(s) {
return (
s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length
);
}
๐ Best - 2
function numPY(s) {
return s.match(/p/gi).length == s.match(/y/gi).length;
}
- ์ฝ๋๋ฅผ ์ ์ถํ๋ฉด์๋ ํต๊ณผ๋ ๋๊ฒ ์ง๋ง, ์ง์ง ๋ณ๋ก๋ผ๊ณ ์๊ฐํ๋ค,,,^^ ์ฐ์ ๋๋ ์ํ๋ ์์์ ๊ฐ์๋ฅผ ์ฐพ๋ ๋ฉ์๋๋ฅผ ์๊ฐํด๋ดค๋๋ฐ ์์ด์..
filter
๋ฉ์๋๋ก ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋ฐฐ์ด์ ๋ง๋ค์ด ๊ฐ์๋ฅผ ๋น๊ตํ๋ ์ฝ๋๋ฅผ ์งฐ๋ค.
- best-1 ์ฝ๋๋
split
์ผ๋ก ๋ฌธ์๋ฅผ ๋๋ ๋, ํด๋น ๋ฌธ์์ด๋ก ๋๋ ์ ๋ฐฐ์ด์ ๊ฐ์๋ฅผ ๋น๊ตํ๋ค. ๋๋ p์ y์ ์ ํํ ๊ฐ์๋ง ๋น๊ตํ๋ ค๊ณ ํ๋๋ฐsplit
์ผ๋ก ๋๋ ์ง ๋ฐฐ์ด์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ๋ ์๋ก์ด ์ ๊ทผ์ด์๋ ๊ฒ ๊ฐ๋ค. (+ ๋ด ์ฝ๋์ ๋น๊ตํ์ ๋, ๋ด ํ์ด์filter
๋ ์ ๋ง ํ์์๋ ๋ฉ์๋๋ฅผ ์ผ๋ค๊ณ ์๊ฐํ๋ค..) - best-2 ์์๋
match
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๋ฉ์๋๋ ์ฒ์๋ดค๋ค.
match
: ๋ฌธ์์ด์ด ์ ๊ท์๊ณผ ๋งค์น๋๋ ๋ถ๋ถ์ ๊ฒ์ํฉ๋๋ค.(MDN)
i๋ ๋์๋ฌธ์ ์๊ด์์ด g๋ ์ ๋ถ ์ฐพ์ผ๋ผ๋ ํ๋๊ทธ. โ regular expression - MDN ์ฐธ๊ณ
- best-1 ์ฝ๋๋