Algorithm :: 프로그래머스 문제풀기 -21
[JS] x만큼 간격이 있는 n개의 숫자
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한사항 :
- x는 -10000000 이상, 10000000 이하인 정수입니다.
- n은 1000 이하인 자연수입니다.
1. 반복문을 통해서 length가 n인 배열 만들기
2. 첫번째 배열은 x로 시작하기
3. 누적값을 담는 변수 squ를 사용하여 x씩 성장하기
function solution(x, n) {
var answer = [];
let squ = 0;
for(let i = 0; i < n; i++){
if(i === 0){
answer[i] = x
squ = x
} else {
answer[i] = squ + x
squ = answer[i]
}
}
return answer;
}
[JS] 직사각형 별찍기
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한사항 :
- n과 m은 각각 1000 이하인 자연수입니다.
이중 반복문을 이용하여 *와 줄바꿈 의미를 가진 \n 를 입력한다.
사실 이 문제는 어려운 문제는 아니였는데 형식이 처음보는 형식이라서 조금 흠칫했다. 그렇게 어려운 문제는 아니였음!
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
let answer = '';
for(let i = 0; i < b; i++){
for(let j = 0; j < a; j++){
answer += '*';
}
answer += '\n';
}
console.log(answer)
});
[JS] 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한사항 :
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
1. arr를 복사한 test라는 배열을 선언한다.
2. 만약 arr의 길이가 있을경우, test를 이용하여 가장 작은 숫자를 구하여, splice하여 삭제한다.
3. 아니라면, -1를 반환한다.
function solution(arr) {
let answer = [];
let test = [...arr]
if(arr.length >= 2) {
test.sort(function(a, b) {
return a - b;
});
let shifted = test.shift();
for(let i = 0; i < arr.length; i++) {
if(arr[i] === shifted) {
arr.splice(i, 1);
i--;
}
}
return arr
} else {
return answer = [-1]
}
}
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges