일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JS 함수
- js 변수
- git 협업셋팅
- JS localStorage
- JS null undefined
- JS redirection
- JS clearInterval
- JS prompt
- JS form
- JS form action
- JS append
- JS 숫자
- JS classList
- JS setTimeout
- JS appendChild
- JS 기초
- CSS기초
- JS 스코프
- JS 삼항연산
- JS 형변환
- JS setInterval
- CSS속성정리
- JS typeof연산자
- JS 타이머기능
- JS 데이터타입
- HTML기초
- JS 연산
- JS value속성
- JS preventDefault
- JS 화살표함수
공부기록용
JavaScript 문법 종합(연습05) 본문
Q1. 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요
제한사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ height ≤ 200
- 1 ≤ array의 원소 ≤ 200
function solution(array, height) {
var answer = 0;
for(let i = 0; i<array.length; i++) {
if(height < array[i]) {
answer++ // height가 배열array i번째 요소보다 작으면 0인 answer에 ++해줘감
}
}
return answer;
}
// console.log(solution([180, 120, 140], 190))
// 0
function solution(array, height) {
let cnt = 0;
array.forEach(num => num > height ? cnt ++ : '')
return cnt;
}
// 1. 머쓱이보다 키큰사람 숫자를 셀 cnt 변수 선언
// 2. array를 forEach로 돌며 주어진 height보다 큰 요소를 만날때마다
// 3. cnt를 ++해준후,
// 4. cnt를 반환.
Q2. 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- -10,000 ≤ numbers의 원소 ≤ 10,000
- 1 ≤ numbers의 길이 ≤ 1,000
function solution(numbers) {
var answer = [];
for(let i = 0; i < numbers.length; i++){
answer.push(numbers[i]*2);
// 조건에 맞는 값을 계속 뒤에 붙임
// [2]->[2, 4]->[2, 4, 6],,,[2, 4, 6, 8, 10]
}
return answer;
}
console.log(solution([1, 2, 3, 4, 5]))
function solution(numbers) {
let answer = [];
numbers.forEach(number => answer.push(2*number))
return answer;
}
function solution(numbers) {
var answer = [];
for(var i=0; i<numbers.length;i++){
answer[i]=numbers[i]*2;
// answer도 배열인 점을 체크
}
return answer;
}
function solution(numbers) {
return numbers.reduce((a, b) => [...a, b * 2], []);
}
const solution = (numbers) => numbers.map((number) => number * 2)
Q3. 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- sides의 원소는 자연수입니다.
- sides의 길이는 3입니다.
- 1 ≤ sides의 원소 ≤ 1,000
function solution(sides) {
var answer = 0;
// sort() 메소드로 배열의 요소를 정렬
// 비교함수의 반환값이 음수면 순서를 그대로 유지하고
// 반환값이 양수이면 b를 a보다 우선하여 정렬하고
// 반환값이 0인 경우 서로에 대해 변경하지 않음
// 정렬하고 나면 가장 큰 값이 맨 뒤로 감
const arr = sides.sort((a, b) => a - b);
if (arr[2] < arr[0] + arr[1]) {
answer = 1;
} else {
answer = 2;
}
return answer;
}
console.log(solution([199, 72, 222]))
function solution(sides) {
sides = sides.sort((a,b) => a-b)
return sides[0]+sides[1] > sides[2] ? 1 : 2;
}
function solution(sides) {
var answer = 0;
const max = Math.max(...sides);
const sum = sides.reduce((a,b) => a + b, 0) - max;
answer = max < sum? 1 : 2;
return answer;
}
★Q4. 중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
제한사항
- array의 길이는 홀수입니다.
- 0 < array의 길이 < 100
- -1,000 < array의 원소 < 1,000
function solution(array) {
var answer = 0;
let number = array.length/2;
let tmpNum = 0;
while(ascCheck(array)){
for(let i = 0; i<array.length;i++){
if(array[i]>array[i+1]){
tmpNum=array[i];
array[i]=array[i+1];
array[i+1]=tmpNum;
}
}
}
number= Math.round(number);
answer=array[number-1];
return answer;
}
function ascCheck(array){
for(let i=0;i<array.length;i++){
if(array[i]>array[i+1]){
return true;
}
}
return false;
}
function solution(array) {
// sort로 배열 정렬하고,
const arr = array.sort((a, b) => a - b);
// array = [1, 2, 7, 10, 11]경우
// arr.length/2를 하면 인덱스번호로했을때 요소가 5개이면 길이 4로 인식 / 2 하면 = 2이고
// 배열 array에서 2이면 3번째로 중앙값 7이 나옴
return array[parseInt(arr.length/2)];
}
Q5. 정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 100
function solution(n) {
var answer = [];
for (let i = 1; i <= n; i++) {
if (i % 2 === 1) { // %나머지 반환 연산자로 나머지가 1이면 홀수인것을 의미
answer.push(i)
}
}
return answer;
}
console.log(solution(10))
function solution(n) {
var answer = [];
for (let i = 1; i<=n; i+=2) answer.push(i)
return answer;
}
const solution = (n) =>
Array
.from({ length: n }, (_, i) => i + 1)
.filter(i => i % 2 !== 0)
Q6. 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ s1, s2의 길이 ≤ 100
- 1 ≤ s1, s2의 원소의 길이 ≤ 10
- s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
- s1과 s2는 각각 중복된 원소를 갖지 않습니다.
function solution(s1, s2) {
let answer = 0;
for (let i = 0; i < s1.length; i++) {
for (let j = 0; j < s2.length; j++) {
if (s1[i] === s2[j]) {
answer++;
}
}
}
return answer;
}
console.log(solution(["a", "b", "c"], ["com", "b", "d", "p", "c"]))
function solution(s1, s2) {
const intersection = s1.filter((x) => s2.includes(x));
return intersection.length;
}
'✍️문제풀기✍️ > JS_Programmers school' 카테고리의 다른 글
프로그래머스(LV 0. 배열 조각하기) (0) | 2023.06.15 |
---|---|
JavaScript 문법 종합(연습06) (0) | 2023.05.31 |
JavaScript 문법 종합(연습04) (1) | 2023.05.29 |
JavaScript 문법 종합(연습03) (0) | 2023.05.26 |
JavaScript 문법 종합(연습02) (0) | 2023.05.25 |