[νλ‘κ·Έλλ¨Έμ€] Lv1 : 3μ§λ² λ€μ§κΈ°
λ¬Έμ μ€λͺ
μμ°μ nμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§λλ€. nμ 3μ§λ² μμμ μλ€λ‘ λ€μ§μ ν, μ΄λ₯Ό λ€μ 10μ§λ²μΌλ‘ ννν μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
μ μΆλ ₯ μ
n | result |
---|---|
45 | 7 |
125 | 229 |
function solution(n) {
var answer = n
.toString(3)
.split("")
.reduce((acc, cur) => cur + acc, "");
return parseInt(answer, 3);
}
ꡬν μ κ·Ό
μ μ μ§μ λ³ν
1. μ μ nμ toStringμ ν΅ν΄ νΉμ μ§μλ₯Ό λ¬Έμμ΄λ‘ λ°ν.
2. split("")λ₯Ό ν΅ν΄ λ°°μ΄λ‘ λ°ν ν
3. reduceλ₯Ό ν΅ν΄ λ¬Έμμ΄μ λ€μ§μ΄μ λ°ν.
-μ΄λ²μλ reverseλ₯Ό μ¬μ©νμ§ μκ³ λ€μ§λ λ°©λ²μ΄ 무μμμκΉ κ³ λ―Όνλ€ μ¬μ©νκ² λ¨!
4. parseIntλ₯Ό ν΅ν΄ 10μ§μλ‘ λ€μ λ³ν.
parseInt λ¬Έμμ΄μ νΉμ μ§μμ μ μλ‘ λ³ννλ€.
μΈμλ‘λ parseInt('λ³νμν€κ³ μνλ λ¬Έμμ΄', ν΄λΉ μμ μ§μ) κ° λ€μ΄κ°λ€.
#1
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}
νμ΄
μ€νλ λ λ¬Έλ²μ ν΅ν΄ 3μ§μλ‘ λ³νν μ μλ€μ λ°°μ΄λ‘ λ°νν ν μ€ μ½λ
#2
function solution(n) {
return parseInt(n.toString(3).split('').reverse().join(''), 3);
}
νμ΄
returnμ parseIntμ μΈμλ‘ νλ²μ λ©μλλ₯Ό μ μ©νμ¬ ν μ€ μ½λ μμ±.
[νλ‘κ·Έλλ¨Έμ€] Lv1 : μ΄μν λ¬Έμ λ§λ€κΈ°
λ¬Έμ μ€λͺ
λ¬Έμμ΄ sλ ν κ° μ΄μμ λ¨μ΄λ‘ ꡬμ±λμ΄ μμ΅λλ€. κ° λ¨μ΄λ νλ μ΄μμ 곡백문μλ‘ κ΅¬λΆλμ΄ μμ΅λλ€. κ° λ¨μ΄μ μ§μλ²μ§Έ μνλ²³μ λλ¬Έμλ‘, νμλ²μ§Έ μνλ²³μ μλ¬Έμλ‘ λ°κΎΌ λ¬Έμμ΄μ 리ν΄νλ ν¨μ, solutionμ μμ±νμΈμ.
μ νμ¬ν
μ μΆλ ₯ μ
s | return |
---|---|
"try hello world" | "TrY HeLlO WoRlD" |
function solution(s) {
let answer = s.split("");
for (let i = 0; i < answer.length; i++) {
if (answer[i] === "") return "";
if (i % 2 === 0 || i === 0) answer[i].toUpperCase();
else answer[i].toLowerCase();
console.log(answer);
}
return answer;
ꡬν μ κ·Ό
1. μ 체 λ¬Έμμ΄μ λλμ΄ λ°°μ΄λ‘ λ°ν.
2. forλ¬Έμ μννλ©° iμ κ°μ΄ μ§μλ©΄ ν΄λΉ μΈλ±μ€ κ°μ λλ¬Έμλ‘ λ³ννμ¬ ν λΉ.
3. νμλ©΄ μλ¬Έμλ‘ λ³ννμ¬ ν λΉ.
λ¬Έμ μ
1. λ³νν κ°μ ν λΉμ ν΄μ€μΌ νλλ° ν λΉμ νμ§ μκ³ λ³νλ§ νμ¬ return λλ κ°μ΄ μμλ€.
for (let i = 0; i < answer.length; i++) {
if (i % 2 === 0) {
answer[i] = answer[i].toUpperCase();
} else {
answer[i] = answer[i].toLowerCase();
}
}
return answer.join(" ");
κ°μ μ μλ£ νμ§λ§, ν΄λΉ μ½λμ λ¬Έμ μ μ
μ 체 λ¬Έμμ΄μ μννκ³ μκΈ° λλ¬Έμ 곡백μ κΈ°μ€μΌλ‘ λ μλ¬Έμλ₯Ό λλμ§ λͺ» ν¨.
split λ©μλμ 곡백μ μΆκ°νμ¬ λ¨μ΄λ³λ‘ λλμμ λ νμ΄.
function solution(s) {
if (s === "") return "";
let answer = s.split(" ");
for (let i = 0; i < answer.length; i++) {
for (let j = 0; j < answer[i].length; j++) {
if (j % 2 === 0) {
answer[i] = answer[i].substr(0, j) + answer[i][j].toUpperCase() + answer[i].substr(j + 1);
} else {
answer[i] = answer[i].substr(0, j) + answer[i][j].toLowerCase() + answer[i].substr(j + 1);
}
}
}
return answer.join(" ");
}
μ΄ μ½λμμλ
answer[i].substr(0, j) + answer[i][j].toUpperCase() + answer[i].substr(j + 1)
λ₯Ό μ¬μ©νμ¬ answer[i]μ jλ²μ§Έ λ¬Έμλ₯Ό λλ¬Έμ λλ μλ¬Έμλ‘ λ³κ²½νκ³ , λ³κ²½λ λ¬Έμμ΄μ answer[i]μ λ€μ ν λΉν©λλ€. λ§μ§λ§μΌλ‘, join() ν¨μλ₯Ό μ¬μ©νμ¬ λ°°μ΄μ μμλ₯Ό 곡백μΌλ‘ μ°κ²°νμ¬ μ΅μ’
κ²°κ³Όλ₯Ό λ°νν©λλ€.
MDN-String.substring( ) λ©μλ κ°λ
String.prototype.substring()
substring() λ©μλλ string κ°μ²΄μ μμ μΈλ±μ€λ‘ λΆν° μ’
λ£ μΈλ±μ€ μ κΉμ§ λ¬Έμμ΄μ λΆλΆ λ¬Έμμ΄μ λ°νν©λλ€.
ꡬ문 : str.substring(indexStart[, indexEnd])
indexStart
λ°νλ¬Έμμ΄μ μμ μΈλ±μ€
indexEnd
μ΅μ
. λ°νλ¬Έμμ΄μ λ§μ§λ§ μΈλ±μ€ (ν¬ν¨νμ§ μμ.)
splitλ©μλμ 곡백μ μΆκ°νμ¬ ν΄λΉ λ°°μ΄λ€μ λλμ΄ κ°κ°μ λ¨μ΄λ³λ‘ λ°°μ΄μ λλμμ§λ§,
μ΄μ€ forλ¬Έμ μ¬μ©νκ³ μΆμ§ μμ κ°μ μ μ λ¬Όμ΄λ³΄κ² λλ€.
μ΄μ€ forλ¬Έμ μμ¨ μ μλ λ°©λ²μ λ€μνμ§λ§,
ν κ°μ§ λ°©λ²μ split() ν¨μλ₯Ό μ¬μ©νμ§ μκ³ λ¬Έμμ΄μ μννλ©΄μ λ¨μ΄μ κ° λ¨μ΄μ μ§/νμ μΈλ±μ€λ₯Ό νλ¨νλ κ²μ
λλ€.
μ΄λ₯Ό μν΄ λ¨Όμ λ¨μ΄μ μμκ³Ό λ μΈλ±μ€λ₯Ό μ°ΎμμΌ ν©λλ€.
λ¨μ΄μ μμ μΈλ±μ€λ λ°λ‘ μ΄μ λ¬Έμκ° κ³΅λ°±μ΄κ±°λ λ¬Έμμ΄μ μμμΌ λμ΄κ³ , λ¨μ΄μ λ μΈλ±μ€λ λ€μ λ¬Έμκ° κ³΅λ°±μ΄κ±°λ λ¬Έμμ΄μ λμΌ λμ
λλ€.
function solution(s) {
if (s === "") return "";
let answer = "";
let isEven = true;
for (let i = 0; i < s.length; i++) {
if (s[i] === " ") {
//λ¨μ΄μ μμμ΄ κ³΅λ°±μΈ κ²½μ° κ³΅λ°± κ·Έλλ‘ μΆκ°.
answer += " ";
// λ¬Έμκ° μλ κ²½μ° λ¨μ΄μ μμ λλ λμΈμ§ νμΈ.
isEven = true;
continue;
}
if (isEven) { // λ¨μ΄λ₯Ό μννλ©° μ§μμΌ λ λλ¬Έμλ‘ λ³ν κ° μ¬ν λΉ
answer += s[i].toUpperCase();
isEven = false; // falseλ‘ λ§λ€μ΄ λ€μ μ€λ μΈλ±μ€λ₯Ό νμλ‘ νλ¨.
} else { // falseμ elseλ μλ¬Έμλ‘ λ³ν κ° μ¬ν λΉ.
answer += s[i].toLowerCase();
isEven = true; //
}
}
return answer;
}
μ΄ μ½λμμλ isEven λ³μλ₯Ό μ¬μ©νμ¬ νμ¬ λ¬Έμκ° μ§μ μΈλ±μ€μΈμ§ μ¬λΆλ₯Ό μΆμ ν©λλ€. for 루νλ₯Ό μ¬μ©νμ¬ λ¬Έμμ΄μ κ° λ¬Έμλ₯Ό μννλ©΄μ, νμ¬ λ¬Έμκ° κ³΅λ°±μΈ κ²½μ°λ κ·Έλλ‘ μΆκ°νκ³ , λ¬Έμκ° μλ κ²½μ°λ λ¨μ΄μ μμ λλ λμΈμ§λ₯Ό νμΈν©λλ€.
μ΄λ₯Ό ν΅ν΄ κ° λ¬Έμλ₯Ό μ§/νμ μΈλ±μ€μ λ°λΌ λμλ¬Έμλ‘ λ³ννμ¬ μ λ¬Έμμ΄ answerμ μΆκ°ν©λλ€. λ§μ§λ§μΌλ‘ answerλ₯Ό λ°νν©λλ€.
isEven λ³μλ νμ¬ λ¬Έμμ μΈλ±μ€κ° μ§μμΈμ§ μ¬λΆλ₯Ό μΆμ νλ λ° μ¬μ©λ©λλ€.
λ°λΌμ νμ¬ λ¬Έμκ° λ¨μ΄μ μμμ΄λ©΄, isEven λ³μλ₯Ό falseλ‘ μ€μ νμ¬ λ€μ λ¬Έμκ° νμ μΈλ±μ€κ° λλλ‘ ν©λλ€.
κ·Έλ κ² ν¨μΌλ‘μ¨ λ€μ λ¬Έμλ₯Ό μλ¬Έμλ‘ λ³νν©λλ€.
λ°λλ‘, νμ¬ λ¬Έμκ° λ¨μ΄μ λμ΄λ©΄, isEven λ³μλ₯Ό trueλ‘ μ€μ νμ¬ λ€μ λ¬Έμκ° μ§μ μΈλ±μ€κ° λλλ‘ ν©λλ€. κ·Έλ κ² ν¨μΌλ‘μ¨ λ€μ λ¬Έμλ₯Ό λλ¬Έμλ‘ λ³νν©λλ€.
λ°λΌμ isEven λ³μλ₯Ό false λλ trueλ‘ μ¬ν λΉνλ κ²μ λ€μ λ¬Έμλ₯Ό λμλ¬Έμλ‘ λ³ννκΈ° μν μμ μ λλ€.