JAVASCRIPT/코딩테스트 18

[프로그래머스] 0단계 - 정수를 나선형으로 배치하기

1. 문제 설명 2. 풀이 function solution(n) { const result = Array.from(Array(n), () => Array(n).fill(0)); // n x n 배열 생성 let num = 1; // 시작 숫자 let row = 0; // 행의 시작 인덱스 let col = 0; // 열의 시작 인덱스 for (let i = n; i > 0; i -= 2) { // 오른쪽으로 이동 for (let j = 0; j < i; j++) { result[row][col] = num++; col++; } col--; row++; // 아래로 이동 for (let j = 0; j < i - 1; j++) { result[row][col] = num++; row++; } row--; ..

[프로그래머스] 0단계 - 그림확대

1. 문제설명 2. 내 답안 function solution(picture, k) { let arr = [] for (let item of picture){ let newItem = '' for (let pixel of item){ pixel = pixel.repeat(k) newItem += pixel } arr.push(...Array(k).fill(newItem)) } return arr } 처음에 for...of... 를 두 번 사용해서 pixel을 가져오는데까지는 수월하게 성공했으나.. pixel을 k배로 만들어서 return하는 과정에서 애를 먹었다.. pixel.length * k를 해서 length를 바꿔주려고 했으나 역시나 예상했던대로 안 됨.. 구글링을 해서 repeat 메서드를 적용했..

[프로그래머스] 0단계 - 배열의 길이를 2의 거듭제곱으로 만들기

1. 문제설명 2. 풀이 function solution(arr) { const len = arr.length let num = 0 while (Math.pow(2,num) < len) num++ for (let i = 0; i < (Math.pow(2,num) - len); i++){ arr.push(0) } return arr; } Math.pow를 다시 한 번 상기시킬 수 있었던 문제,, 내 문제점은 무슨 문법으로 시작해야하는지까지는 감이 잡히는데 그 이후가 잘 안 되는 것이다,, 이 문제도 배열의 길이, for문, while 문을 사용해서 풀어야지 생각하고 접근했는데 그걸 어떻게 이용해서 풀지 아직 잘 안 되어서 구글링엔딩,, 아직 연습이 부족한 탓이겠지 더 열심히 하자 파이팅!!!

[프로그래머스] 0단계 - 빈 배열에 추가, 삭제하기

1. 문제 설명 2. 내 답변 function solution(arr, flag) { var answer = []; for (let i = 0; i < flag.length; i++){ if (flag[i] === true){ answer.push(...Array(arr[i]*2).fill(arr[i])) }else{ answer.splice(answer.length - arr[i], arr[i]) } } return answer; } 이중for문을 사용해서 풀려고 했는데 왜인지 모르게 계속 에러가 떠서 구글링.. 다른 사람 답변에도 이중for문 사용한 사람 많던데 왜 에러가 떴을까.. ㅠㅠ 그래도 덕분에 Array를 배워간다! 3. Array() Array() 생성자는 새로운 Array 객체를 생성할 ..

[프로그래머스] 0단계 - 조건에 맞게 수열 변환하기 2

● 문제설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요. 단, 두 배열에 대한 "="는 두 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 서로 같음을 의미합니다. ● 답변 function solution(arr) { let idx = 0 let prevArr = arr while(true) { // 현재 배열을 조건에 맞게 변환 const changeCurArr..