https://school.programmers.co.kr/learn/courses/30/lessons/120910?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(n, t) {
answer = n
for (i=0; i<t; i++) answer *= 2
return answer;
}
다른 사람 풀이들
function solution(n, t) {
return n << t;
}
비트연산자를 이용한 풀이
<< (왼쪽시프트) : 비트 전체가 왼쪽으로 이동
n=2, t=10이면
2진수일 때 2는 10,인데 10만큼 비트가 밀어져서
100000000000 = 2048
function solution(n, t) {
return n*Math.pow(2,t);
}
Math.pow를 이용한 풀이
Math.pow는 제곱을 구할 때 쓰는 함수이다.
위 식은 n * 2의t승이 된다.
n=7 , t=15일 때 결과는 229376이 되는데
229376을 소인수분해하면 2^15 * 7이 된다.
https://school.programmers.co.kr/learn/courses/30/lessons/120905?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(n, numlist) {
numlist = numlist.filter(num => num%n == 0)
return numlist;
}
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
answer(Number(input[0]));
});
function answer(n) {
for (i=1;i<=input;i++) {
console.log("*".repeat(i))
}
}
살짝 당황했는데
Number(input[0])이 숫자가 입력되는 곳이고,
*이 출력될 함수를 만들고 그 함수로 Number(input[0]) 부분을 감싸면 된다.
https://school.programmers.co.kr/learn/courses/30/lessons/120893?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(my_string) {
str_list = []
my_string = my_string.split('')
for (i of my_string) {
if (i === i.toUpperCase()) {
str_list.push(i.toLowerCase())
} else {
str_list.push(i.toUpperCase())
}
}
return str_list.join('');
}
function solution(my_string) {
answer = ''
for (i of my_string) {
if (i === i.toUpperCase()) {
answer += i.toLowerCase()
} else {
answer += i.toUpperCase()
}
}
return answer;
}
밑에가 더 깔끔한 듯
https://school.programmers.co.kr/learn/courses/30/lessons/120839
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(rsp) {
let answer = "";
for (i of rsp) {
if (i === "2") {
answer += "0";
} else if (i === "0") {
answer += "5";
} else {
answer += "2";
}
}
return answer;
}
다른 사람 풀이
function solution(rsp) {
return rsp.split("").map((v) => v==="2" ? 0 : (v==="0" ? 5 : 2)).join("")
}
map을 이용한 다음에 삼항연산자를 이용해서 이렇게 풀 수도 있나보다
function solution(rsp) {
let arr = {
2: 0,
0: 5,
5: 2
};
var answer = [...rsp].map(v => arr[v]).join("");
return answer;
}
객체 이용
split(") 안 쓰고 [...rsp] 이렇게 적으면 자동으로 문자 하나하나가 나뉘어서 배열에 담아지나보다, 기억해둬야겠다
https://school.programmers.co.kr/learn/courses/30/lessons/120892?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(cipher, code) {
answer = ''
for (let i = code; i<=cipher.length; i +=code) {
answer += cipher.slice(i-1,i)
}
return answer;
}
function solution(cipher, code) {
answer = ''
for (let i = code; i<cipher.length+1; i +=code) {
answer += cipher[i-1]
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/120845
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(box, n) {
return parseInt(box[0]/n) * parseInt(box[1]/n) * parseInt(box[2]/n);
}
다른 사람 풀이
function solution(box, n) {
return box.reduce((acc,v) => acc * Math.floor(v / n), 1);
}
reduce 이용
https://school.programmers.co.kr/learn/courses/30/lessons/120850?language=javascript#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(my_string) {
let answer = [];
my_string = [...my_string].map(str => parseInt(str)).filter(str => !isNaN(str))
return my_string.sort();
}
일단 map으로 숫자로 변경해준 후 필터로 NaN이 아닌 값을 걸러줬다..........................
https://school.programmers.co.kr/learn/courses/30/lessons/120899
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(array) {
return [Math.max(...array),array.indexOf(Math.max(...array))];
}
function solution(array) {
let max = Math.max(...array)
return [max,array.indexOf(max)];
}
변수 만드는 게 더 깔끔한듯......
https://school.programmers.co.kr/learn/courses/30/lessons/120844
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(numbers, direction) {
var answer = [];
if (direction === "right") {
answer.push(numbers[numbers.length-1])
answer.push(...numbers.slice(0,numbers.length-1))
} else {
answer.push(...numbers.slice(1,numbers.length))
answer.push(numbers[0])
}
return answer;
}
다른 사람 풀이
function solution(numbers, direction) {
if ("right" == direction) {
numbers.unshift(numbers.pop());
} else {
numbers.push(numbers.shift());
}
return numbers;
}
shift, unshift는 처음 본다.. 공부해야겠다
| [자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 56~60문제 (0) | 2023.01.23 |
|---|---|
| [자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 51~55문제 (0) | 2023.01.23 |
| [자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 31~40문제 (0) | 2023.01.19 |
| [자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 26~30문제 (0) | 2023.01.18 |
| [자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 21~25문제 (0) | 2023.01.17 |