JavaScript 223

LV0 25 배열 두 배 만들기

문제 - 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요. 입출력 예 numbers result [1, 2, 3, 4, 5] [2, 4, 6, 8, 10] [1, 2, 100, -99, 1, 2, 3] [2, 4, 100, -198, 2, 4, 6] 나만의 풀이 이 문제를 어떻게 풀지 고민하다 우선 반복문을 이용해 간단히 풀고 다른 분들이 어떻게 풀었는지 확인했다. 그런데 대부분 map을 이용해서 문제를 푼 것을 알 수 있었다. 아직 map을 사용해 보지도 않았고 map에 대해 알아보았다! map( a => a + 1)을 예로 들면 배열을 하나 하나 꺼내어 매개변수 a에 넣고 화살표 함수로 함수를..

LV0 24 편지

문제 - 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요. 입출력 예 message result "happy birthday!" 30 "I love you~" 22 나만의 풀이 어... 이문제는 length로 길이 구하고 * 2 하면 끝이다... 어... 더 설명이... function solution(message) { return message.length * 2; }

LV0 23 양꼬치

문제 - 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요. 입출력 예 n k result 10 3 124,000 64 6 768,000 나만의 풀이 어... 이번 문제는 그냥 초등학생 수학문제 같은 니낌이였다.(너무 껌이네 이게 아니라 그냥 단순 연산문제!!) 그냥 식으로 표현하면 12000 * n + 2000 * (k - n/10의 몫)이다 이걸 코드로 풀면 끝~ function solution (n, k) { return 12000 * n + 2000 * ..

LV0 22 자릿수 더하기

문제 - 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요 입출력 예 n result 1234 10 930211 16 나만의 풀이 처음에는 숫자들을 분리하려고 했다. 그래서 .split('')를 이용을 했는데 계속 오류가 발생해서 스트레스를 받고 있는 상황이였는데... 쉰다고 생각을 멈추니 split는 숫자열을 분리하지 못한다는 것을 떠올렸다. 그래서 toSting을 이용해 문자열로 만들고 reduce()를 이용해 모든 숫자를 더하는데 Number을 이용해 문자열로 바꾼 숫자들을 다시 숫자열로 치환했다. 그래서 완성한 코드~~ ※ reduce의 맨 뒤에 있는 0은 더 하기던 기본 값 설정이라고 보면 된다. 즉 0이 아니라 1이면 값이 +1이 ..

LV0 21 배열 자르기

문제 - 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 numbers num1 num2 result [1, 2, 3, 4, 5] 1 3 [2, 3, 4] [1, 3, 5] 1 2 [3, 5] 나만의 풀이 - 이번에는 배열의 범위를 설정해 원하는 부분의 값을 출력하는 문제이다~~ 내장 함수로 array.slice(num1, num2);가 있는데 이것은 slice() 안에 첫 번째 수부터 두 번째 수 앞까지만 출력해주는 내장 함수이다. 문제는 해당하는 num2의 자리에 있는 숫자도 출력해야 하니 +1을 해주었다. const solu..

LV0 20 제곱수 판별하기

문제 - 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return 하도록 solution 함수를 완성해주세요. 입출력 예 n result 144 1 976 2 나만의 풀이 - 처음에는 제곱수를 구하기 위해 반복문과 조건문을 이용해 만들어 보았는데 많이 무거워서 내장 함수에 루트를 표현한 것이 있을 거 같아 내장 함수를 찾아보았는데, 헉!!! 있었다?!?!? Math.sqrt() 그래서 sqrt()에서 소숫점이 나오면 아니고 안 나오면 제곱수라는 것을 알 수 있으니 ?를 이용해 제곱수가 맞다면 1을 아니라면 2를 반환하게 코드를 구성했다. function solution(n) { const answer = Math.sqr..

LV0 19 최댓값 만들기 (1)

문제 - 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return 하도록 solution 함수를 완성해주세요. 입출력 예 numbers result [1, 2, 3, 4, 5] 20 [0, 31, 24, 10, 1, 9] 744 나만의 풀이 - 저는 이 문제를 다양하게 풀 수 있다고 생각한다. 그래서 너무 생각이 많아서 오히려 오래 걸린 문제인 것 같다. 처음에는 배열 안에 있는 배열의 원소 중 큰수 2개를 곱하는 거니 배열에서 가장 큰 수를 구라고 배열에서 뺀 후 다시 큰 수를 구하면 큰 수 2개가 구해진다. 그렇게 구한 2 숫자를 더하고 리턴하면 결과는 나오지만 코드가 불필요하게 길게 나온다. 그렇다면 다른 방법은 배열을 크기 순서대..

LV0 18 배열 뒤집기

문제 - 정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요. 입출력 예 num_list result [1,2,3,4,5] [5,4,3,2,1] [1,1,1,1,1,2] [2,1,1,1,1,1] [1,0,1,1,1,3,5] [5,3,1,1,1,0,1] 나만의 풀이 - 이건 간단하게 array의 내장 함수인 reverse()인 배열의 순서를 뒤집는 것을 이용해 풀었다. const solution = (num_list) => num_list.reverse();

LV0 17 피자 나눠 먹기 (1)

문제 - 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. 입출력 예 n result 7 1 1 1 15 3 나만의 풀이 - 이번에도 간단한 사고력이 필요한 수학 문제이다. 우선 문제는 최소한의 피자 개수가 필요하다. 피자는 7조각 이므로 1~7명은 1판, 8~14명은 2판, 15~21명은 3판... 이렇게 필요로 하다. 이렇게 풀면 조건문이 필요하나 생각할 수 있지만 더 간단하게 만들기 위해 생각하면 나누기와 올림을 이용하면 된다. 1~7에 7을 나누면 1 이하의 숫자가 나오고 올림을 하면 1이 된다. 8~14, 15~21도 동일한 결..

08 JS 객체

- 객체는 8가지 자료형 중 하나이지만 다른 7개의 원시형과 달리 다양한 데이터를 담을 수 있으며 {}로 만들며 키(key) : 값 (value) 형태를 띠고 있으며 이것을 묶어서 프로퍼티(property)라고 부른다. ※ 문법 let user = new Object(); // '객체 생성자' 문법 let user = {}; // '객체 리터럴' 문법 (주로 사용됨) ※ 객체 리터럴 - {}를 이용해 개체를 선언하는 것은 '객체 리터럴' 이라고합니다~~ 01 사용!! - 리터럴에 선언 let user = { // 객체 name: "John", // 키: "name", 값: "John" age: 30, // 키: "age", 값: 30 }; - 프로퍼티 값 얻기 user.name; // John user...

JS 2022.10.11