Javascript 45

프로그래머스 17일차

최댓값 만들기 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. function solution(numbers) { numbers.sort((a,b)=>b-a); return numbers[0]*numbers[1]; } numbers.sort((a,b)=>b-a)를 통해 numbers 배열을 내림차순으로 정렬합니다. 이를 통해 배열의 첫 번째 원소가 가장 큰 값이 되도록 합니다. 그리고 return numbers[0]*numbers[1]을 통해 정렬된 배열의 첫 번째 원소와 두 번째 원소를 곱한 값을 반환합니다. 이는 정렬된 배열에서 가장 큰 두 수를 선택하여 곱한 값이기 때문에, 주어진..

프로그래머스 16일차

주사위의 개수 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. function solution(box, n) { return box.reduce((acc, cur) => acc * Math.floor(cur / n), 1); } box.reduce 메서드를 사용하여 box 배열의 모든 요소를 하나씩 순회하면서 처리합니다. reduce 메서드는 배열의 각 요소에 대해 주어진 콜백 함수를 실행하고, 이전 값과 현재 값의 결합을 ..

프로그래머 15일차

공던지기 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. function solution(numbers, k) { return numbers[(k - 1) * 2 % numbers.length]; } k에서 1을 빼줍니다. 이는 인덱스가 0부터 시작하는 반면에 k는 1부터 시작하기 때문입니다. 이렇게 함으로써 k번째 공을 던지는 사람의 인덱스를 구할 수 있습니다. 다음으로, (k - 1) * 2를 계산합니다. 이를 통해 순환적..

프로그래머스 14일차

공 던지기 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. function solution(numbers, k) { return numbers[(k - 1) * 2 % numbers.length]; } 배열 인덱스는 0부터 시작하므로 k - 1을 해줍니다. 이를 통해 k번째 공을 던지는 사람의 인덱스를 구합니다. 그 다음, 2를 곱하고 numbers.length로 나눈 나머지 값을 계산합니다. 이를 통해 순환적인 인덱스 접근을..

프로그래머스 13일차

점의 위치 구하기 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. 스크린샷 2022-07-07 오후 3.27.04 복사본.png x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요. function solution(dot) {..

프로그래머스 12일차

가위 바위 보 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. function solution(rsp) { return Array.from(rsp).map(v => { switch(+v) { case 2: return 0 case 0: return 5 default: return 2 } }).join(''); } 가위(2), 바위(0), 보(5)를 순서대로 나타낸 문자열 rsp를 받아서, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 반환하는 함수를 작성하는 것입니다. 해..

프로그래머스 11일차

개미군단 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요. function solution(hp) { const first = Math.floor(hp / 5); const second = Math.f..

프로그래머스 10일차

진료순서 정하기 문제 설명 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. function solution(emergency) { let sorted = emergency.slice().sort((a,b)=>b-a); return emergency.map(v=>sorted.indexOf(v)+1); } 높은 순서대로 진료 순서를 정하는 것이 문제의 목표입니다. 해당 문제에서 제시된 해결 방법은 다음과 같습니다. sorted라는 변수를 만들어 emergency 배열을 복사하고, 복사한 배열을 내림차순으로 정렬합니다...

프로그래머스 9일차

배열 자르기 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요. function solution(numbers, num1, num2) { return numbers.slice(num1, num2 + 1); } solution은 numbers 배열의 num1번째 인덱스부터 num2번째 인덱스까지의 부분 배열을 반환하는 함수입니다. 부분 배열을 얻기 위해 numbers 배열의 slice 메서드를 사용합니다. slice 메서드는 배열의 지정된 인덱스 범위에 해당하는 요소들로 이루어진 새로운 배열을 반환합니다. slice 메서드의 첫 번째 매개변수 ..

프로그래머스 7일차

문자열 뒤집기 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요. function solution(my_string) { var answer = ''; answer = my_string.split('').reverse().join(''); return answer; } 주어진 문자열 my_string을 거꾸로 뒤집어서 반환하는 함수인 solution을 구현한 것입니다. 아래는 코드의 동작 설명입니다. var answer = '';: 결과를 저장할 빈 문자열 answer를 선언합니다. answer = my_string.split('').reverse().join('');: my_string.split(''): ..

프로그래머스 5일차

피자 나눠먹기 3 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. function solution(slice, n) { var answer = 0; answer = Math.floor( (n - 1) / slice) + 1; return answer; } 피자를 두 조각에서 열 조각까지 원하는 조각 수로 자르며, 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 주어졌을 때, n명의 사람이 최소 한 조각 이상의 피자를 먹기 위해 필요한 최소 피자..

프로그래머스 4일차

피자 나눠 먹기1 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. function solution(n) { return Math.ceil(n / 7) } 피자를 일곱 조각으로 자르고, 피자를 나눠먹을 사람의 수 n이 주어졌을 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 계산하여 반환하는 함수입니다. n을 7로 나눈 후 올림 처리합니다. (Math.ceil 함수를 사용하여 소수점 이하를 올림합니다.) 이렇게 함으로써, n명의 사람이 모든 사람이 한 조각 이상의 피자를 먹기 위해서는 총 몇 개의 피자가 필요한지 계..

프로그래머스 3일차

최빈값 구하기 function solution(array) { // array의 최댓값만큼의 길이를 가진 새로운 배열 생성 let newArray = new Array(Math.max(...array)+1).fill(0); // array 반복문을 통해, 해당 값에 해당하는 index의 값 += 1 for (let i = 0; i < array.length; i++) { newArray[array[i]] += 1 } // newArray의 최댓값에 해당 하는 index 출력 // 만약 indexOf와 lastIndexOf가 지칭하는 값이 같으면, -1 출력 (중복인 경우 확인) if (newArray.indexOf(Math.max(...newArray)) !== newArray.lastIndexOf(Ma..

프로그래머스 2일차

두 수의 나머지 function solution(num1, num2) { var answer = Math.floor((num1 / num2)*1000); return answer; } num1을 num2로 나눈 후 그 결과에 1000을 곱한 값을 소수점 이하를 버리고 반환합니다. num1 / num2를 계산합니다. 이는 num1을 num2로 나눈 실수값을 반환합니다. 계산된 값을 1000으로 곱합니다. Math.floor() 함수를 사용하여 소수점 이하를 버립니다. 이렇게 하면 최종 결과는 정수가 됩니다. 최종 결과를 answer 변수에 할당합니다. answer 값을 반환합니다. 즉, 이 함수는 num1을 num2로 나눈 후에 그 결과를 1000으로 곱한 값을 정수로 변환하여 반환하는 것입니다. 두 수의..

프로그래머스 1일차

1. 두수의 합 함수를 만드세요 정수 num1과 num2가 주어질 때, num1과 num2의 합을 return하도록 soltuion 함수를 완성해주세요. function solution(num1, num2) { var answer = -1; return answer; } 답 function solution(num1, num2) { var answer = num1 + num2; return answer; } 입출력 예 #1 num1이 2이고 num2가 3이므로 2 + 3 = 5를 return합니다. 입출력 예 #2 num1이 100이고 num2가 2이므로 100 + 2 = 102를 return합니다. 2. 두수의 차 함수를 만드세요 정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 r..

콜백함수에 대해 알아봅시다!

어제 동기 비동기에대해 올렸는데요 오늘은 동기 시스템인 자바 스크립트를 비동기로 작업 할 수 있는 콜백함수에 대해 설명하려고 합니다. 콜백함수 콜백함수(callback function)는 다른 함수에서 인자로 전달되어 실행되는 함수입니다. 일반적으로 비동기적인 작업을 처리할 때 사용되는데, 비동기적인 작업은 결과가 나올 때까지 기다리지 않고 다른 작업을 수행하는 것을 말합니다. 콜백함수는 보통 비동기적인 작업이 완료되었을 때 호출됩니다. 예를 들어, 파일을 읽는 함수에서는 파일을 읽는 작업이 완료되면 콜백함수가 호출되어 결과를 전달합니다. 콜백함수는 인자로 결과를 받아들이고, 결과를 이용하여 다른 작업을 수행할 수 있습니다. 콜백함수는 JavaScript에서 매우 중요한 역할을 합니다. JavaScrip..

Javascript 2023.05.05

자바스크립트의 동기와 비동기

오늘 aws을 다녀왔는데요 기조 연설을 듣는중 동기와 비동기 이야기가 나와 오늘은 동기와 비동기에 대해 설명하고자합니다. 동기 동기는 작업을 순차적으로 처리하느 방식입니다. 즉, 한 작업이 끝날 때 차지 동기(Synchronous)는 작업을 순차적으로 처리하는 방식입니다. 즉, 한 작업이 끝날 때까지 다른 작업은 실행되지 않습니다. 이 방식은 코드가 간단하고 직관적이며, 작업의 순서가 중요한 경우에 유용합니다. 비동기 반면에, 비동기(Asynchronous)는 작업이 병렬로 처리되는 방식입니다. 한 작업이 실행 중일 때 다른 작업도 실행됩니다. 이 방식은 작업의 순서가 중요하지 않을 때 유용하며, 대부분의 경우 더 효율적입니다. 비동기 방식은 일반적으로 콜백(Callback), 프로미스(Promise) ..

Javascript 2023.05.04

정보처리기능사 실기 주관식 오답노트(설명)

01. 다음 중 OSI 7 계층의 네트워크 계층에 해당하는 프로토콜을 모두 고르시오. HTTP, TCP, UDP, FTP, ICMP, IP, ATM, TELNET 답 : ip, icmp IP(Internet Protocol)가 가장 많이 사용됩니다. ICMP(Internet Control Message Protocol)는 네트워크 상태를 확인하고 오류를 보고하는 데 사용 ARP(Address Resolution Protocol)는 IP 주소를 물리적 MAC 주소로 변환하는 데 사용 02. 다음이 설명하는 용어를 작성하시오. 이것은 네트워로 연결된 두 호스트 사이에서 연결할 수 있는지 점검하는 진단도구이다. 이 명령을 실행하면 ICMP Echo 반향 패킷을 이용하여 원격 IP 주소에 송신하고 ICMP 응답..

자바스크립트 오답노트_0428시험

01. 다음의 결괏값을 작성하시오. { let i = 0; let sum = 0; while(i < 10){ i = i+1; if( i % 4 == 0) sum -= i; if( i % 4 == 1) sum += i; if( i % 4 == 2) sum *= i } console.log(sum) } 답 : 190 02. 다음의 결괏값을 작성하시오. { let num = [10, 20, 30, 40, 50]; let i, max, min; max = min = num[0]; for(i=0; i max) max = num[i]; if(num[i] < min) min = num[i]; } console.log(max, min); } 답 : 50,10 03. 다음의 결괏값을 작성하시오. { function fu..

문자열 객체 10가지를 알아봅시다!

at() ()안에 숫자를 index로 받아 문자열에 해당 되는 인덱스의 요소를 반환합니다. 배열에도 사용가능하며 정수값을 받아 utf-16코드 단위로 구성된 새 string을 반환 "Live positive".at("3"); // e "Live positive".at("6"); // o(띄여쓰기 무시) "Live positive".at("10"); // i "Live positive".at("20"); // undefined "Live positive".at("-3"); // i "Live positive".at("-6"); // s "Live positive".at("-10"); // e(띄여쓰기 무시) "Live positive".at("-20"); // undefined "Live positive"..

Javascript 2023.04.22

MY SQL& 기능사 주관식 오답노트

MY SQL 03. SQL문의 빈칸을 완성하시오. [성적] 테이블에서 점수가 90점 이상 95점 이하인 '컴퓨터공학과' 학생의 정보를 검색한 SQL문을 작성하시오. SELECT * FROM 성적 WHERE (점수 _____ 90 _____ 95) AND 학과 = '컴퓨터공학과'; 답 : Between And 06. SQL문의 빈칸을 완성하시오. [학생] 테이블에서 '주소' 속성을 추가하는 SQL문을 작성하시오. _____ TABLE 학생 _____ 주소 VARCHAR(20) 답 : Alter add 기능사 주관식 01. 다음 빈칸의 내용을 작성하시오. ( ① ) : 물리(Physics) 계층에서 데이터 전송을 하기 위해 사용하는 데이터 단위 ( ② ) : 네트워크(Network) 계층에서 데이터 전송을 ..

정보처리기사 오답노트

01. 다음의 결괏값을 작성하시오. { let i = 0; let sum = 0; while(i < 10){ i = i+1; if( i % 3 == 0) sum -= i; if( i % 3 == 1) sum += i; if( i % 3 == 2) sum *= i } console.log(sum) } i i % 3 == 0(-) i % 3 == 1(+) i % 3 == 2(*) sum 1 +1 1 2 *2 2 3 -3 -1 4 +4 3 5 *5 15 6 -6 9 7 +7 16 8 *8 128 9 -9 119 10 +10 129 답 : 129 02. 다음의 결괏값을 작성하시오. { let num = [10, 20, 30, 40, 50]; let i, max, min; max = min = num[0]; fo..

자바스크립트 : 마무리 문제를 풀어 봅시다 4-1탄

이번은 명언이 10초에 한번씩 랜덤으로 바뀌는 스크립트를 짰던것을 이번엔 unsplish api을 활용하여 랜덤으로 배경이미지 변경되는 스크립트를 추가하였습니다. 그에 맞게 css도 수정하였습니다. CSS * { margin: 0; padding: 0; /* background-color: #000; */ } body { background-size: cover; background-repeat: no-repeat; width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center; } body::before { content: ''; position: absolute; left: 0;top: 0; width: 1..

자바스크립트 : 마무리 문제를 풀어 봅시다 5탄

이번 마무리 문제는 로또번호처럼 6개의 숫자를 중복없이 랜덤으로 받아오는 코드를 짜는 것입니다. CSS * { margin: 0; padding: 0; } input { border-style: none; } body { width: 100%; height: 100vh; } .numgen__wrap { position: relative; top: 250px; display: flex; justify-content: center; } .numgen { width: 800px; /* height: 500px; */ background-color: #fff; display: block; box-shadow: 0 0 20px rgba(95, 120, 161, 0.4); border-radius: 10px; } ..

자바스크립트 : 마무리 문제를 풀어 봅시다 4탄

이번 마무리 문제는 명언이 10초에 한번씩 랜덤으로 바뀌는 스크립트를 짜는 것입니다. CSS * { margin: 0; padding: 0; /* background-color: #000; */ } body { background-image: url(https://images.unsplash.com/photo-1496264057429-6a331647b69e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1171&q=80); background-size: cover; background-repeat: no-repeat; } body::before { content: ''; position: abs..

03월 31일 쪽지시험_오답노트

01. 다음의 결괏값을 작성하시오. { let num = 0; while(false){ num++; if( num == 3 ){ continue; } if( num > 10 ){ break; } } console.log(num); } 답 : 0 우선 변수 num에 0을 저장하고 whiile문을 실행하려고하는데 조건문에 false가 있는데 while문에 false가 있으면 실행하지않아 출력된 답은 0입니다. 02. 다음의 결괏값을 작성하시오. { let a = 6, b = 9, c = 3, result; result = ++a + b++ + ++c; console.log(result); console.log(a+b+c); } 답 : 20 21 03. 결괏값을 작성하시오. { function func(){ ..

자바스크립트 : 마무리 문제를 풀어 봅시다 3탄

마무리 문제1 마우스 오버하면 이미지 바꾸기 우선 메인크기를 600으로 만듭니다. 또한 마진을 20px auto를 주어 위아래 20px에 양 옆은 자동으로 맞춰 줍니다. h1은 폰트사이즈 1.5rem을 사용하여 생소한 단어지만 한번이라도 사용하여 익히려고 했습니다. 그리고 중앙에 정렬 하도록 text-align을 center을 줍니다. 그리고 아래로 여백을 줄수 있도록 margin-bottom을 20px를 줍니다. 이미지를 메인 안에서 width이 100%이도록 합니다. 스크립트를 보면 imgMain이라는 상수에 #main > img을 저장하여 사용합니다. 이미지에 마우스를 올리면 이벤트가 움직이도록 imgMain에 대해 addEventListener("mouseover")을 사용하고 imgMain에 s..

문자열에 대해서 알아봅시다.

자바스크립트에는 문자열과 관련된 함수가 다양하게 있습니다. 원시유형과 객체 단순히 값을 가지고 있을 경우에는 원시유형이라고 하고 프로퍼티와 메서드를 가지고 잇을 때는 객체라고 합니다. 예을 들어 lenght을 사용할때 변수에 문자열을 할당한 후 lenght 프로퍼티를 사용하는데 이때 변수에 lenght을 할ㄹ당하지 않아도 사용할 수잇습니다. 프로퍼티(Property) 객체(Object) 내부의 속성(Attribute)으로, 해당 객체의 상태를 나타내는 값(Value)이나 함수(Function)를 말합니다. 객체는 프로퍼티를 가지며, 이를 통해 객체의 상태와 행동을 제어할 수 있습니다. lenght 포로퍼티 문자열의 길이를 찾을 때 사용하는 프로퍼티입니다. 보통 배열에서도 많이 사용하며 배열의 인덱스의 총..

Javascript 2023.03.29

03월 24일 쪽지시험_오답노트

01. 결괏값을 작성하시오. { const str = "javascript"; const text = str.indexOf("a"); const text2 = str.lastIndexOf("a"); const text3 = str.includes("a"); console.log(text); console.log(text2); console.log(text3); } 답 : 1 3 true 02. 다음의 결괏값을 보고 빈칸을 채우시오. { function func(){ document.write("함수2가 실행되었습니다."); } function callback(str){ document.write("함수1가 실행되었습니다."); _______(); } callback(func); //함수1가 실행되었습니다..

03월 17일 쪽지시험_오답노트

금요일마다 시험이라뇨... 목요일 밤마다 몬스터 사러 갑니다... 01. 결괏값을 작성하시오. { (function(){ console.log("함수가 실행되었습니다."); })(); } 답 : 함수가 실행되었습니다. 02. 결괏값을 작성하시오. { function func(str = "함수가 실행되었습니다."){ document.write(str); } func(); } 답 : 함수가 실행되었습니다. 03. 결괏값을 작성하시오. { let sum = 0; for(var i=1; i num2) return num1 else return num2 } console.log(func(10, 23) + func(40, 50)) } 답 : 73 if 조건문을 사용하여, 첫 번째 매개변수 num1이 두 번째 매개변..