[ํ๋ก๊ทธ๋๋จธ์ค] Lv1: ์ง์ฌ๊ฐํ ๋ณ์ฐ๊ธฐ
๋ฌธ์ ์ค๋ช
์ด ๋ฌธ์ ์๋ ํ์ค ์
๋ ฅ์ผ๋ก ๋ ๊ฐ์ ์ ์ n๊ณผ m์ด ์ฃผ์ด์ง๋๋ค.
๋ณ(*) ๋ฌธ์๋ฅผ ์ด์ฉํด ๊ฐ๋ก์ ๊ธธ์ด๊ฐ n, ์ธ๋ก์ ๊ธธ์ด๊ฐ m์ธ ์ง์ฌ๊ฐํ ํํ๋ฅผ ์ถ๋ ฅํด๋ณด์ธ์.
์ ํ์ฌํญ
*n๊ณผ m์ ๊ฐ๊ฐ 1000 ์ดํ์ธ ์์ฐ์์
๋๋ค.
์ ์ถ๋ ฅ ์
์ ๋ ฅ |
---|
5 3 |
์ถ๋ ฅ |
---|
##### |
##### |
##### |
function star(a, b) {
let stars = "";
for (let i = 0; i < b; i++) {
for (let j = 0; j < a; j++) {
stars += "*";
}
stars += "\n";
}
return stars;
}
๊ตฌํ ์ ๊ทผ
1. ํ์ค ์
๋ ฅ ๋ฐฉ์์ ๋ํด์๋ ๋ค๋ค๋ณด์ง ์์๋ ํฐ๋ผ ์
๋ ฅ์ด ์ด๋ป๊ฒ ์ด๋ค์ง๊ณ ์
๋ ฅ ๋ ๊ฐ์ด ์ ์ ๋ ๊ฒ ๋ฐํ ๋๋์ง ์ ์ ์์์ด์ ๊ฒฐ๊ตญ ํ์ด๋ฅผ ์ฐธ๊ณ ,,
2. ์ด์ค for๋ฌธ์ ์ ์ฉ์์ผ์ผ ํ๋๋ฐ ์ด์ค for๋ฌธ์ ์๋ฆฌ ํ์
๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ๋์ ์๋ฆฌ์ ์ดํด๊ฐ ์์ง ๋ถ์กฑํ์ด์ ๊ฒฐ๊ตญ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์๋ค,, ใ
ใ
๋ฌธ์ ์
1. ํ์ค ์
๋ ฅ ๋ฐฉ์์ ๋ํด ์ดํด๋ณด์.
์ง๊ธ์ ์๋ฆฌ๋ฅผ ์ข ๋ ์ดํดํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋จธ์ค ํ์ด ์ฝ๋๋ฅผ ๋จผ์ ์คํ ํด๋ณด์๋ค.
์คํ ๊ฒฐ๊ณผ๊ฐ ์ซ์ ๊ฐ 5์ 3์ด ๋์ค๋ ๊ฒ์ ํ์ธํ์๋ค.
๊ฐ๋ฐ์ ์ฝ์์์ ๋ฐ์์จ ์
๋ ฅ๊ฐ์ 'data'์ธ์์ ์
๋ ฅํ์ฌ ํด๋น
'data'๋ฅผ ๋ฐฐ์ด์ ๋ง๊ฒ ํ ๋ณํ์ ํด์ฃผ๋ ํจ์์ธ ์
์ด์๋ค.
2. ์ด์ค for๋ฌธ์ด ๋์๋๋ ์๋ฆฌ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ฝ๋๋ฅผ ์ฝ์ด๊ฐ๋ ์๋ฆฌ์ ๋ํด ๋ค์ ํ ๋ฒ ์๊ฐํ๊ฒ ๋๋ค.
function star(a, b) {
let stars = "";
for (let i = 0; i < b; i++) {
for (let j = 0; j < a; j++) {
stars += "*";
}
stars += "\n";
}
return stars;
}
์ ์ฝ๋๋ฅผ ๋ณด๋ฉด for๋ฌธ์ ์๋ฆฌ๋
์ฆ, ์ฒซ ๋ฒ์งธ for ๋ธ๋ก ์์ for๋ฌธ์ด ๋ค ์คํ ๋ ๋ค์ ๋ธ๋ก ์์ ๋๋ฒ ์งธ ๋ผ์ธ์ผ๋ก ๋์ด๊ฐ stars += '\n'์ด ์คํ๋๊ณ ๋ค์ for ์กฐ๊ฑด์ผ๋ก ๋์ด์จ ๋ค์ ๋ธ๋ก ์์ ์ฒซ ๋ฒ์งธ ๋ผ์ธ์ผ๋ก ํฅํ๊ฒ ๋๋ ๊ฒ.
๋ค์ ํ ๋ฒ ํด๋ก์ ธ(closure)์ ์๋ฆฌ์ ์๋ฐ์คํฌ๋ฆฝํธ ํน์ฑ์ธ ์ธํฐํ๋ฆฌํฐ์ด์ ์ดํด์๋ฆฌ๋ฅผ ์๊ฐํ๊ฒ ๋๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค.
#1
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
const row = '*'.repeat(a)
for(let i =0; i < b; i++){
console.log(row)
}
});
ํ์ด
๋ฐ๋ณต์ ๋ฐ๋ณต์ ์ธ ํ์ ์์ด repeat ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ repeat๋งํผ ๋ณ์ด ๋ฐ๋ณต๋๋ ์ถ๋ ฅ์ ๋ง๋ค๋ฉด ๋๋ ๊ฒ.
#2
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
console.log((('*').repeat(a)+`\n`).repeat(b))
});
ํ์ด
ํน์ ๋ ๊ฐ๊ฒฐํ๊ฒ ํ ์ค๋ก ๋๋ผ ์๋ ์์๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค] Lv2: JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ
๋ฌธ์ ์ค๋ช
JadenCase๋ ๋ชจ๋ ๋จ์ด์ ์ฒซ ๋ฌธ์๊ฐ ๋๋ฌธ์์ด๊ณ , ๊ทธ ์ธ์ ์ํ๋ฒณ์ ์๋ฌธ์์ธ ๋ฌธ์์ด์
๋๋ค. ๋จ, ์ฒซ ๋ฌธ์๊ฐ ์ํ๋ฒณ์ด ์๋ ๋์๋ ์ด์ด์ง๋ ์ํ๋ฒณ์ ์๋ฌธ์๋ก ์ฐ๋ฉด ๋ฉ๋๋ค. (์ฒซ ๋ฒ์งธ ์
์ถ๋ ฅ ์ ์ฐธ๊ณ )
๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, s๋ฅผ JadenCase๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
s | return |
---|---|
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
function solution(s) {
var answer = s.split(" ").map((e) => e[0].toUpperCase());
return answer;
}
console.log(solution("3people unFollowed me"));
๊ตฌํ ์ ๊ทผ
1. ํด๋น ์
๋ ฅ๋ ๋ฌธ์์ด์ ๋จ์ด๋ณ๋ก ๋๋๊ธฐ ์ํด split๋ฉ์๋์ ์ธ์๋ฅผ ๊ณต๋ฐฑ์ ํฌํจํ์ฌ ๋๋์ด ์ค.
2.map ๋ฉ์๋๋ฅผ ํตํด element์ [0] ์ธ๋ฑ์ค์ ์ํ๋ ๊ฐ๋ค์ ๋๋ฌธ์๋ก ๋ณํํ๋ ๋ฉ์๋ toUpperCase()์ฌ์ฉ.
3. ํ์ง๋ง ๋ฐํ ๊ฐ์ ๋๋ฌธ์๋ก ๋ณํ๋ 3, U, M ๋ง ๊ฒฐ๊ณผ๊ฐ ๋ฐํ.
4. ๋ค์ ๋ฌธ์์ด์ ์ด๋ป๊ฒ ๋ถ์ฌ์ ์ค๋ฉด ์ข์์ง ๊ณ ๋ฏผํ๋ค gpt์๊ฒ ๋ฌผ์ด๋ณด๊ฒ ๋๋ค.
ํด๋น ์ง๋ฌธ์ ํตํด ๋ค์ ๋ฌธ์์ด ๊น์ง ๋ถ์ด์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๊ฒ ๋๋ ๊ฒ์ ํ์ธํ ํ.
"๊ทธ๋ผ ๋ถ์ด์ค๋ ๋ฌธ์์ด๋ค์ ์๋ฌธ์๋ก ์ค๊ฒ๋๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋๊ฒ ๋ค?"
์ถ์ด์ slice(1)๋ค์ .toLowerCase() ํจ์๋ฅผ ์ ์ฉํด๋ณด์๋ค.
function solution(s) {
var answer = s
.split(" ")
.map((e) => e[0].toUpperCase() + e.slice(1).toLowerCase());
return answer.join(" ");
}
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ตฌํ์ด ์ ๋๋ก ์๋๋๋ ๊ฒ์ ํ์ธ ํ ์ ์์๋ค!
ํก์กฑํ ์ํ๋ก ์ ์ถ์ ํ์์ผ๋
ํ์์ผ๋,,!
์ ์์ด ์์์ง๋ ๋ฐํ์ ์๋ฌ๋ค.. ์ ๋๋ ๊ฒ์ธ์ง ๊ฒฐ๊ตญ ์ดํดํ ์ ์์ด ์ง๋ฌธํ๊ธฐ ์ฝ๋์ ๋ค์ด๊ฐ ๊ฐ์ ์ง๋ฌธ์ด ์๋ ๊ฒ์ ๋ณด๊ณ ์์ฐจํ๊ฒ ๋๋ค.
๋คํ์ด ๊ฐ์ ์ง๋ฌธ์ ํ์ ๋ถ์ด ๊ณ์ จ์๊ณ ,๊ทธ ์ด์ ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ธ์ ์ค ์ฐ์๋ ๋น ๋ฌธ์์ด์ด ์ค๊ฒ ๋๋ค๋ฉด split ๋ฉ์๋๊ฐ ๊ฐ์ ๋ฐํํ์ง ๋ชป ํด undefined ๋๋ฌธ์ ๋ฐํ์ ์๋ฌ๊ฐ ์๊ธด๋ค๊ณ ํ๋ค.
๊ทธ๋ ๊ฒ ์ต์ข ์ ์ผ๋ก ๋ต๋ณ์ ์ฐธ๊ณ ํ์ฌ ์์ ํ๊ฒ ๋ ์ฝ๋๋
function solution(s) {
let answer = s
.split(" ")
.map((e) => (e ? e[0].toUpperCase() + e.slice(1).toLowerCase() : ""));
return answer.join(" ");
}
๋ฌผ๋ก ์ค์ค๋ก ์์ฑํ ๋ต๋ณ ๋ณด๋ค๋ ๋์์ ๋ฐ์ ๊ฒ์ด ๋ง๋ค๊ณ ๋๋ผ์ง๋ง ์ ๊ทผ ์๋๋ฅผ map์ ํตํ์ฌ ํ ์ ์์๊น๋ผ๋ ์์๋ถํฐ ํ ์ ์๋ค๋ ๊ฒ์์ ์กฐ๊ธ์ ๋ง์กฑ์ ํ๊ฒ ๋๋ค.
๋ค์ ๋ถํฐ๋ ์ ๋ฐ ์ง๋ฌธ์ ๋ต๋ณ์ ํ ์ ์์ ์ ๋์ ์ค๋ ฅ๊น์ง ๊ธธ๋ฌ๋ณด์!
#1
function solution(s) {
return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}
ํ์ด
1. map์ด ์ํํ๋ ํด๋น element์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ์ถ์ถ๋ง ํ๋ ๊ฒ์ด ์๋ charAt ๋ฉ์๋๋ฅผ ํตํด ์ธ์์ ํ
์คํธ๊ฐ ํต๊ณผํ์ง ๋ชป ํ๋ฉด ๋น ๋ฌธ์์ด์ด ๋ฐํ๋๊ฒ ์ค์ ํ ๊ฒ.
MDN ํ์ค๋ด์ฅ๊ฐ์ฒด String.prototype.charAt()
charAt() ํจ์๋ ๋ฌธ์์ด์์ ํน์ ์ธ๋ฑ์ค์ ์์นํ๋ ์ ๋์ฝ๋ ๋จ์ผ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค.
๊ตฌ๋ฌธ
str.charAt(index)
๋งค๊ฐ๋ณ์
- 0๊ณผ ๋ฌธ์์ด์ ๊ธธ์ด - 1 ์ฌ์ด์ ์ ์๊ฐ.
- ์ธ์๋ฅผ ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก 0๋ฅผ ์ค์ ๋๊ณ ์ฒซ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค.
index
๋ฐํ ๊ฐ- ์ง์ ๋ ์ธ๋ฑ์ค์ ํด๋นํ๋ ์ ๋์ฝ๋ ๋จ์ผ๋ฌธ์๋ฅผ ๋ฐํํ๋ค.
- ๋ง์ฝ ์ธ๋ฑ์ค๊ฐ ๋ฌธ์์ด ๊ธธ์ด๋ณด๋ค ํฐ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด (์) " " ์ ๋ฐํํ๋ค.
์ด๋ ๊ฒ ๋ ๋ฉ์๋ ํ๋๋ฅผ ๋ฐฐ์๊ฐ๋๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1: ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์
๋ฌธ์ ์ค๋ช
๋ ์๋ฅผ ์
๋ ฅ๋ฐ์ ๋ ์์ ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์. ๋ฐฐ์ด์ ๋งจ ์์ ์ต๋๊ณต์ฝ์, ๊ทธ๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฃ์ด ๋ฐํํ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ ์ 3, 12์ ์ต๋๊ณต์ฝ์๋ 3, ์ต์๊ณต๋ฐฐ์๋ 12์ด๋ฏ๋ก solution(3, 12)๋ [3, 12]๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
n | m | return |
---|---|---|
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
์ํ ๊ณต์์ ํตํ,, ์๊ณ ๋ฆฌ์ฆ,, ๋๋ฌด๋ ๊ดด๋ก์ ๋ค,,
์ํ์ ์ ๋์์ง ์ค๋๋ผ์ ๊ทธ๋ฐ์ง ์๋ฌด๊ฒ๋ ํ ์ ์๋ ์์ ์ด
ํํ ์ค๋ฝ๊ธฐ๋ง ํ๋ค ๊ทธ๋ ๊ฒ ํ์ด๋ฅผ ์์๋ณด๊ฒ ๋๊ณ
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฒ ๋๋ค!
๊ทธ ํ์ด๋
function solution(n, m) {
var answer = [];
const greatest = (a, b) => {
if (b === 0) return a;
return greatest(b, a % b);
};
const least = (a, b) => (a * b) / greatest(a, b);
return [greatest(n, m), least(n, m)];
}
์ถ์ฒ velog
1. ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํ์ฌ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํฉ๋๋ค.
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ด๋ ์ฃผ์ด์ง ์ธํ ์ค ํฐ ๊ฐ์ a, ์์ ๊ฐ์ b, a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง๋ฅผ r์ด๋ผ๊ณ ๊ฐ์ ํ๋ค๋ฉด,
a > b, a % b .. r
b % r .. r2
r % r2 .. r3
์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ๋๋จธ์ง๊ฐ 0์ด ๋๋ ์๊ฐ์ด ์ต๋๋ค.
๋๋จธ์ง๋ฅผ 0์ผ๋ก ๋ง๋ค์ด ์ฃผ๋ ๋๋ ์ฃผ๋ ์๊ฐ ์ต๋ ๊ณต์ฝ์๊ฐ ๋ฉ๋๋ค.
#1
function gcdlcm(a, b) {
var r;
for(var ab= a*b;r = a % b;a = b, b = r){}
return [b, ab/b];
}
ํ์ด
for๋ฌธ ์์ ์กฐ๊ฑด์ ๊ธฐ๋ณธ ๊ณต์์ด ์๋, ๋ฐ๋ณตํ๊ณ ์ ํ๋ ์กฐ๊ฑด๋ค์
๋ณ์๋ฅผ ๋ค์ํ๊ฒ ์ ์ธ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๊ฒ ๋๋ค.
์ด๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ๊ณผ for๋ฌธ์ ์กฐ๊ฑด ๋ณํ์ ๋ํด ์ ์ตํ๋๊ณ ๋ค์์๋ ์์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ์ดํด๋ฅผ ์ตํ๋์!