Javascript/문제 풀이 21

프로그래머스 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..

자바스크립트 : 마무리 문제를 풀어 봅시다 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..

자바스크립트 : 마무리 문제를 풀어 봅시다 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..

자바스크립트 : 문제을 풀어 봅시다! 02탄😎

마무리 문제1(숫자를 받아 양수,음수,0인지 판단하고 창에 표시) 숫자를 받아서 양수, 음수, 0을 판단하고 알림 창에 표시하는 함수를 선언합니다. parseInt() 함수를 사용해 프롬프트 창에 입력한 내용을 숫자로 면환합니다. (프롬프트 창에 입력한 내용잉 숫자가 아니면 parseInt()함수는 NaN을 반환합니다.) 반환값이 숫자일 경우에만 함수를 실행합니다. See the Pen 2023.02.28_문제1 by jo0132 (@jo0132) on CodePen. 해설 먼저 ParseInt 함수(숫자가 아닐 경우 nan을 반환함)로 수를 받아 상수 number로 선언하면서 시작합니다. !isNaN()(매개변수가 숫자인지 검사하는 함수)로 숫자인지 검사후 ispositive()(양수인지 확인하는 함수..

자바스크립트 : 마무리 문제 1,2번을 풀어 봅시다!

문제 풀이 전... 자가격리 때문에 집에있는 사이 받은 새로운 책의 문제를 블로그에 올리는게 숙제가 되어버렸어요 고로 문제를 알 수 없는 상황에 친구한테 문제를 페이지를 사진으로 받아 풀게 되었습니다. 결과는 잘 나왔는데 답을 몰라서 틀린 코딩일 수있다는 점... 우리 같이 공부해요😂 마무리 문제 1 주어진 배열에서 10보다 큰 값을 찾아서 화면에 표시해 보세요 배열 요소의 개수만큼 for문을 반복합니다. if문을 사용해서 요소의 값과 10을 비교합니다. document.write문을 사용해서 화면에 표시합니다. See the Pen 20230225_01 by jo0132 (@jo0132) on CodePen. if문으로 배열 arr의 요소중 10이상의 수를 찾아 출력할 수있도록 if문의 조건식을 arr..