JavaScript 223

LV0 54 합성수 찾기

문제 - 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 입출력 예 n result 10 5 15 8 나만의 풀이 이 문제는 살짝 억지로 풀긴 했다. 제한 사항에 1 ≤ n ≤ 100 있어서 for문을 1부터 시작하면 소수들이 걸리고 100 이하만 들어오니 소수 중 2, 3, 5, 7의 제곱수만 for문에 조건문을 돌리면 걸리는 상황이다. 그래서 그 부분만 넘기고 for문과 삼항 연산자를 이용해 풀었다. (심히 억지로~~) function solution(n) { let answer = 0; if (n >= 4) { answer += 1; } if (n >= 6) { answer += ..

LV0 53 2차원으로 만들기

문제 - 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return 하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8]로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. 입출력 예 num_list n result [1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]] [100, 95, 2, 4, 5, 6, 18, 33, 948] 3 [[100, 95, 2], [4, 5, 6], [18, 3..

LV0 52 피자 나눠 먹기 (2)

문제 - 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 입출력 예 n result 6 1 10 5 4 2 나만의 풀이 이 문제는 코드를 구성해 해결하려고 노력하다 막혀서 수학적으로 접근을 하여 풀었습니다. 수학적 생각해보면 피자 수 / 사람 수를 했을 때 나머지가 생기면 피자 수 * 2 / 사람 수를 하고 나머지가 생기면 피자 수 * 3 / 사람 수를 반복하면 나머지가 생기지 않을 시 필요한 *수가 필요한 피자의 판 수가 된다. 그것을 코드로 만들어 보았다. function so..

LV0 51 암호 해독

문제 - 군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다. 암호화된 문자열 cipher를 주고받습니다. 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다. 문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return 하도록 solution 함수를 완성해주세요. 입출력 예 cipher code result "dfjardstddetckdaccccdegk" 4 "attack" "pfqallllabwaoclk" 2 "fallback" 나만의 풀이 아침 밥도 안 먹고 문제를 보고 해결하려고 하니 너무 풀리지가 않아서 fot문과 if문을 이용해 문제를 풀었다. 우선 간단하게 생각을 하면 매개변수 cipher의 주어지는 단어를 spli..

12 JS new 연산자와 생성자 함수

- 개발을 하다 보면 유사한 객체를 여러 개 만들어야 할 때 new 연산자와 생성자 함수를 사용하면 유사한 객체 여러 개를 쉽게 만들 수 있다. 생성자 함수 - 일반 함수에 기술적인 차이는 없다. 다만 생성자 함수는 2개의 관례를 따른다. 함수 이름의 첫 글자는 대문자로 시작한다. 반드시 new 연산자를 붙여 실행한다. 예시 function User(name) { this.name = name; this.isAdmin = false; } let user = new User("메롱"); alert(user.name); // 메롱 alert(user.isAdmin); // false 함수 실행 시 알고리즘 빈 객체를 만들어 this에 할당함. 함수 본문을 실행한 뒤, this에 새로운 프로퍼티를 추가해 th..

JS 2022.10.21

LV0 50 7의 개수

문제 - 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 입출력 예 array result [7, 77, 17] 4 [10, 29] 0 나만의 풀이 이 문제는 쉽게 생각해서 풀었다. 배열을 다 합치고 원소를 다 분리해 배열로 만든 뒤 filter()을 이용해 "7"만 남기고 length를 이용해 7의 개수를 리턴하면 끝~~ function solution(array) { const answer = array.join().split('').filter( a => a === "7").length; return answer; }

LV0 48 주사위의 개수

문제 - 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. 입출력 예 box n result [1, 1, 1] 1 1 [10, 8, 6] 3 12 나만의 풀이 이 문제는 공간적으로 접근을 해야 한다. 변 n의 길이를 가진 정육면체를 box안에 넣는 것이니 box의 부피를 구해서 나눠서 구하는 것이 아니라 가로, 세로, 높이에 각 n의 길이 만큼 나누고 몫끼리 곱하면 되는 문제였다. function solution(box, n)..

LV0 47 배열 회전시키기

문제 - 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return 하도록 solution 함수를 완성해주세요. 입출력 예 numbers direction result [1, 2, 3] "right" [3, 1, 2] [4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4] 나만의 풀이 이 문제는 right가 나오면 마지막 꺼릴 뽑아서 처음에 넣고, left가 나오면 첫 번째를 뽑아서 마지막에 넣으면 된다. 그래서 right가 나오면 numger.pop()로 마지막 숫자를 뽑고 unshift()를 이용해 처음에 추가하고 아니면 shift()를..

LV0 46 외계행성의 나이

제목 - 우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요. 입출력 예 age result 23 "cd" 51 "fd" 100 "baa" 나만의 풀이 문제를 보자마자 수자를 알파벳으로?!?! 이것은 아스키코드를 이용하라는 것이군!! 이렇게 생각했다. 그래서 매개변수 age에 주어지는 숫자를 문자화한 후 원소를 분리해..

LV0 45 369게임

문제 - 머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야 하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야 할 박수 횟수를 return 하도록 solution 함수를 완성해보세요. 입출력 예 order result 3 1 29423 2 나만의 풀이 order로 주어지는 숫자에 3,6,9 개수만큼 박수를 쳐야 한다. 그렇다면 비교를 하기 위해 숫자들을 분해해서 배열화 시키고 map을 이용해서 0이 아니거나 3으로 나누었을 때 나머지가 0면 변수에 +1 아니면 0을 더해주면 되는 문제이다~ function solution(order) { let answ..