본문 바로가기

분류 전체보기

(262)
Programmers - Js - 정수 제곱근 판별 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 나의 풀이 양의 정수인 제곱근을 찾기 위해 Math.sqrt(n)을 사용하였으며, 나머지 연산자 %를 이용해 나머지가 0일경우 정수로 판단하였다. 삼항연산자를 이용하여 정수일경우 양의 정수인 제곱근에 1을 더하여 제곱하여 리..
Programmers - Js - 문자열 내 p와 y의 개수 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한 사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다. 입출력 예 #2 'p'의 개수 1개, 'y'의 개수 2개로 다르므로 fa..
Programmers - Js - 자연수 뒤집어 배열로 만들기 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 나의 풀이 자연수 n을 문자열로 변환 후 각 자릿수를 나누어 배열에 저장하며, 원하는 결과는 12345 -> 54321 즉 반대로 나타나야 하기 때문에 reverse() 함수를 통해 바꾸어주고 마지막으로 문자열인 값을 number 타입으로 반환하기위해 map함수로 새로운 배열을 리턴하여 문제를 풀었다. function solution(n) { let answer = []; answer = n.toString().split("").reverse().map((item) => Number..
Js - 불변성(immutability) React와 Vue의 불변성 차이 1. 불변성이란? 2. JavaScript 메모리 구조 3. 원시타입과 참조 타입의 데이터 저장방식과 재할당 비교 4. React와 Vue에서의 데이터 불변성 1. 불변성이란? 불변성은 값이나 상태를 변경할 수 없는 것을 의미한다. 프로그래밍에서 불변성은 데이터 원본의 훼손을 막는 것을 의미한다. 간단히 말하자면, 어떤 값을 직접적으로 변경하지 않고 새로운 값을 만들어내는 것이다. 2. JavaScript 메모리 구조 자바스크립트 엔진은 call stack과 heap memory 2가지 메모리 공간을 가지고있다. call stack: 실행 중인 함수를 추적해 계산을 수행하고 지역변수를 저장하는 공간이다. 이곳에 원시 타입들이 저장된다. heap memory: 참조 타입들이 할당되는 곳입니다. 메모리 누수..
Programmers - Js - 약수의 합 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 나의 풀이 요즘 React를 통해 개인 프로젝트를 진행하다보니 불변성을 지키기 위해 spread operator를 사용하여 작업하는것이 습관이 되어 아래와같이 문제를 풀었다. 다른 사람들의 풀이를 보니 어렵게 생각하지 말고 쉽게 쉽게 생각하여 문제를 풀어야겠다. function solution(n) { let answer = []; for(let i=1; i acc ..
Programmers - Js - 자릿수 더하기 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 나의 풀이 number type의 자연수 N을 자릿수 별로 분리하기 위해 문자열로 변경하였으며, split()함수로 자릿수를 배열로 나눠주고 reduce()함수로 배열을 연산하여 간단히 문제를 풀었습니다. function solution(n) { return n.toString().split("").reduce((acc, cur) => acc + Number(cur), 0); }
Programmers - Js - 평균 구하기 문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한 사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr return [1,2,3,4] 2.5 [5,5] 5 나의 풀이 js 내장함수인 arr.reduce를 사용하여 간단히 풀 수 있었다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce function solution(arr) { return arr.reduce((acc, cur) => acc + cur) / arr.length }
Programmers - Js - 짝수와 홀수 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" 나의 풀의 삼항 연산자를 통해 간단히 풀 수 있었다. function solution(num) { return num % 2 === 0 ? "Even" : "Odd" }