🌟 = 내가 생각한 난이도있는 풀이
1. 직사각형 별찍기 1레벨
2. 삼진법 뒤집기 1레벨
3. 삼총사 1레벨
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { // 5, 3 이 입력되었다
const n = data.split(" "); // "5" "3" 으로 분리했다.
const a = Number(n[0]), b = Number(n[1]); // a는 5, b는 3이 되었다.
// 예시를 통해서 a는 별의 갯수, b는 몇줄을 의미하는건지 알게되었다
for(let i = 1; i <= b; i++){ // 몇줄인지 먼저 설정하고, 제한조건으로인해 초기값은 1부터다
let star = ""; // 공백값의 변수를 선언
for(let j = 1; j <= a; j++){ // 별이 몇개인지 설정하고, 제한조건으로인해 초기값은 1부터다
star = star + "*"
}
console.log(star);
}
});
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
const str = "*".repeat(a);
for(let i = 0; i < b; i++) {
console.log(str); // for 0번째 일 때 str(*****)출력 for 1번째일 때 str또 출력
}
});
repeat(a)
로 5를 출력하고, for문으로 3까지 출력했다. for가 0일때 a의 수만큼 " * " 를 생성 반복되는만큼 줄을 생성한다.function solution(n) {
var answer = 0;
let opposite = n.toString(3).split('').reverse().join('')
return parseInt(opposite, 3)
}
나의 풀이
: 개고생을 하다가.. 아래의 메서드 이용법을 알게되서 쉽게 풀이했다
일단 자연수이고, 3진법으로 바꿔주기 위해서 toString()
을 사용해서 split()
으로 분리한뒤에
reverse()
로 뒤집어줬다 !
10진수 -> 2진수( 3, 4, 5...N 진수)
n.toString(N)
2진수 ( 3, 4, 5...N 진수 ) -> 10진수
parseInt(number,N)
function solution(number) {
var answer = 0;
for(let i=0; i<number.length; i++){
for(let j=i+1; j<number.length; j++){
for(let k=j+1; k<number.length; k++){
if(number[i] + number[j] + number[k] === 0){
answer += 1;
}
}
}
}
return answer;
}
i=0
, j=i+1
, k=j+1
로 맞춰서 서로 중복을 피하고, 각자의 변수의 길이만큼 반복을 진행하여, 총합이 0인경우을 answer값에 +1씩 카운팅했다function solution(number) {
let answer = 0;
number.forEach((num1, i) => {
number.forEach((num2, j) => {
if (i >= j) return; // 중복된 조합 방지
number.forEach((num3, k) => {
if (j >= k) return; // 중복된 조합 방지
if (num1 + num2 + num3 === 0) {
answer += 1;
}
});
});
});
return answer;
}