전체 글 73

[프로그래머스] 0단계 - 분수의 덧셈 (유클리드 호제법)

0. 문제 설명 - 코테 문제를 풀다가 갑자기 기약분수가 튀어나왔다.. 너무 오랜만에 보는 단어라 순간 기약분수가 뭐지..? 하고 검색해봤는데 초등학교 5학년 때 배우는 수학.. ㅋㅋ 다 까먹었다 🤣 - 손으로 풀라하면 풀 수 있는데 이걸 코딩으로 구현해야 하니 막막함이 올라왔다.. 그래서 구글링 후 유클리드 호제법이라는 알고리즘을 학습! 1. 유클리드 호제법이란? - 두 양의 정수, 혹은 두 다항식의 최대공약수를 구하는 방법 - 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이..

[프로그래머스] 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 메서드를 적용했..

[REACT] React + Typescript + Vite + SCSS로 만드는 쇼핑몰 개인프로젝트 (1/10)

😀 개요 전 직장에서 next + typescript로만 개발을 해오고 그마저도 템플릿이 있어 환경설정을 할 필요가 없었다. 또한 리액트 프로젝트를 생성할 때 Create React App으로만 해보고 vite도 한 번도 사용해보지 않아 새로운 환경에서 개발을 해보고 싶었다! 환경설정부터 백엔드 아닌 백엔드까지 전 과정을 혼자서 경험해보고자 이 프로젝트를 시작하게 되었다. 오랜만에 보는 리액트 로고.. vite는 처음인데.. 생성속도가 아주 빨라서 좋았다. 1️⃣ vite로 새로운 프로젝트 생성하기 yarn create vite ? Project name: 프로젝트이름 ? Select a framework: (Use arrow keys) ❯ vanilla vue react preact lit svelte..

[프로그래머스] 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 객체를 생성할 ..