문제 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 100 입출력 예 n result 10 5 15 8 입출력 예 #1 10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다. 입출력 예 #2 15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다. 내가 작성한 답안 function solution(n) { // 1부터 n까지의 수를 배열에 담는다. let arr = []; for(let i = 1; i i+1) for(let i = 2; i el%i != 0 || ..
문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해 주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 = 1 + 4 = 2 + 3 입니다. 6 = 2 + 4 입니다. 7 = 3 + 4 입니다. 따라서 [2,..
문제 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return 하도록 solution 함수를 완성해 주세요. 제한사항 1 ≤ n ≤ 1,000,000 입출력 예 n result 144 1 976 2 입출력 예 #1 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return 합니다. 입출력 예 #2 976은 제곱수가 아닙니다. 따라서 2를 return 합니다. 내가 작성한 답안 function solution(n) { let arr = []; for(let i = 1; i
설명 Array.prototype.sort()는 배열의 요소를 적절한 위치에 정렬한 후, 그 배열을 반환한다. 이때 배열 안 모든 요소는 문자형으로 변환된 후, 유니코드 단위의 값을 비교한 뒤 재정렬된다. 배열 안의 요소가 숫자일 경우도 숫자끼리의 크기 비교를 하지 않고 숫자를 문자열로 변환한 뒤 해당 문자열의 유니코드 값을 비교하여 정렬을 하게 된다. 9와 80이라는 두 수를 sort()로 비교할 경우 숫자로는 9가 80보다 우선하지만, 유니코드 순서 상으로는 80이 9보다 앞에 위치하고 있어 80을 9보다 앞쪽에 정렬하게 된다. 구문 // 기본 구문 값 arr.sort([compareFunction]) // 화살표함수를 이용한 표현법 arr.sort((a, b) => { /* ... */ } comp..
문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한사항 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings n result ["sun", "bed",..
문제 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑..
문제 정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해 주세요. 제한사항 0 < num1 ≤ 100 0 < num2 ≤ 100 입출력 예 num1 num2 result 10 5 2 7 2 3 내가 작성한 답안 function solution(num1, num2) { let answer = parseInt(num1 / num2); return answer; } 7 / 2 = 3.5의 경우처럼 몫이 정수가 아닌 값이 나올 수 있으므로 parseInt()를 이용해 실수를 정수형으로 변환하였다. parseInt()는 문자열 인자를 파싱하여 특정 진수의 정수를 반환한다. 다른 사람들이 작성한 답안 Math.floor function..
사용자가 웹에서 특정 데이터를 요청했을 경우, 우리는 이 데이터를 어떻게 넘기고 결괏값을 보여줄 것인지를 정해야 한다. 이것을 진행하는 것이 바로 HTTP(Hyper Text Transfer Protocol)이다. HTTP는 브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜(규약, 규칙) 가운데 한 종류로, 웹 브라우저와 웹 서버 사이에 HTML문서를 주고받는데 쓰이는 통신 프로토콜이다. 위와 같이 클라이언트(요청을 보내는 쪽, Requset)와 서버(요청을 받는 쪽, Respose)가 HTTP로 통신할 때, 데이터를 어떻게 넘길 것인가를 결정하는 것이 'GET'과 'POST'이다. 각 방식의 대표적인 특징을 먼저 살펴보고 이후 예시와 함께 직접 확인해 보자. GET GET방식의 대표적인 특징..
이해를 위한 기본 세팅 설명 [내 PC]의 [사진] 폴더 안에 [Scan], [오류] 폴더가 있으며 동등한 위치에 'capture.jpg'가 있다. [Scan] 폴더 안에는 'black.jpg'가, [오류] 폴더 안에는 '1.jpg', '2.jpg', '3.jpg'가 있다. 절대 경로 ▶ 최상위 디렉토리(=파일)를 반드시 포함하여 작성된 경로 사진에 보이는 '1.jpg'의 절대경로는 내 PC\사진\오류\1.jpg 이다. 절대경로는 직관적이어서 이해하기 쉽지만, 찾아가는 과정에서 여러 파일을 거칠 경우 경로가 길고 복잡해진다는 단점이 있다. 상대 경로 ▶ 현재 디렉토리(기준 비교 대상)를 기준으로 작성된 경로 상대경로는 '내가 기준으로 삼고 싶은 디렉토리'를 기준으로 '다른 디렉토리(또는 파일)'가 어디에..