프로그래머스 46

프로그래머스 21일차

캐릭터의 좌표 문제 머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. 정답풀이 function solution(keyinput, board) { // 1. x,y ..

프로그래머스 2023.06.06

프로그래머스 20일차

잘라서 배열로 저장하기 문제 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. 정답풀이 function solution(my_str, n) { let strArr = my_str.split(""); let ans = []; while(strArr.length > 0){ ans.push(strArr.splice(0,n).join("")); } return ans; } 문자열 my_str을 split("")을 사용하여 한 글자씩 분할하여 배열 strArr로 변환합니다. 빈 배열 ans를 선언합니다. 이 배열은 분할된 문자열을 저장하기 위한 배열입니다. while 루프를 사용하여 배열 strArr의 길이가 0..

프로그래머스 2023.06.05

프로그래머스 19일차

한 번만 등장한 문자 문제 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 정답풀이 function solution(s) { let ans = []; let sArr = s.split(""); sArr.forEach((item) => { if(s.indexOf(item) === s.lastIndexOf(item)){ ans.push(item); } }) return ans.sort().join(""); } 초기화 부분에서는 빈 배열 result와 나누는 수인 divisor를 2로 설정합니다. while 루프는 n이 2 이상인 동안 ..

프로그래머스 2023.06.04

프로그래머스 18일차

소인수분해 문제 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 정답풀이 function solution(n) { let result = []; let divisor = 2; while (n >= 2) { if (n % divisor === 0) { result.push(divisor) n = n / divisor; } else divisor ++; } return [...new Set(result)]; } 초기화 부분에서는 빈 배열 result와 나..

프로그래머스 2023.06.03

프로그래머스17일차

공 던지기 문제 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 정답풀이 function solution(numbers, k) { let ansIndex = 0; for(let i = 0; i numbers.length){ ansIndex -= numbers.length; } } return numbers[ansIndex - 2]; } ansIndex 변수..

프로그래머스 2023.06.02

프로그래머스 16일차

진료 순서 정하기 문제 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. 정답풀이 function solution(emergency) { let sorted = emergency.slice().sort((a,b)=>b-a); return emergency.map(v=>sorted.indexOf(v)+1); } let sorted = emergency.slice().sort((a,b)=>b-a);: 이 줄은 emergency 배열의 복사본을 slice() 메서드를 사용하여 생성한 후, sort() 메서드를 사용하여 s..

프로그래머스 2023.06.01

프로그래머스 14일차

약수 구하기 문제 정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 정답풀이 function solution(n) { let ans = []; for(let i = 1; i = 0 ? (answer = answer + 1) : -1; return answer; } 함수는 num을 문자열로 변환한 뒤, indexOf() 메서드를 사용하여 k가 처음 등장하는 인덱스를 찾습니다. 그 결과를 answer 변수에 할당합니다. answer가 0 이상인 경우, answer에 1을 더하여 1부터 시작하는 인덱스로 변환합니다. 그렇지 않은 경우, -1을 할당합니다. 마지막으로, answer 값을 반환합니다. 예를 들어, num이 12345이고 ..

프로그래머스 2023.05.31

프로그래머스 13일차

가장 큰 수 찾기 문제 정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요. 정답풀이 function solution(array) { let max = Number.MIN_SAFE_INTEGER; let index = -1; for (let i = 0; i max) { max = array[i]; index = i; } } return [max, index]; } 먼저, max 변수를 Number.MIN_SAFE_INTEGER로 초기화합니다. 이는 최댓값을 추적하기 위한 초기값으로 설정됩니다. index 변수를 -1로 초기화합니다. 이는 최댓값..

프로그래머스 2023.05.31

프로그래머스 12일차

주사위의 개수 문제 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. 정답풀이 function solution(box, n) { let answer = 1; for (v of box) answer *= Math.floor(v / n); return answer; } 함수는 결과를 저장하기 위한 변수 answer를 1로 초기화합니다. 다음으로, box 배열을 순회하는 반복문을 실행합니다. 반복문에서는 현재 요소 v를 n으로 나눈..

프로그래머스 2023.05.31

프로그래머스11차

가위 바위 보 문제 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. 정답풀이 function solution(rsp) { const rspWin = { 2 : 0, 0 : 5, 5 : 2 }; return [...rsp].map(x => rspWin[x]).join('') } 함수는 rspWin이라는 객체를 선언하고 초기값을 할당합니다. rspWin 객체는 2, 0, 5 세 가지 속성을 가지며, 각 속성은 해당하는 가위, 바위, 보의 이길 경우에 대응하는 값으로 설정되어 있습니다. 함수는 rsp 문자열..

프로그래머스 2023.05.31

프로그래머스 10일차

숨어있는 숫자의 덧셈 (1) 문제 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요. 정답풀이 function solution(my_string) { const num = my_string.split(""); let result = 0; for(let i = 0; i < num.length; i++){ //하나하나 잘렸을 때 number면 result에 담아서 더해주는 코드 //split하면 배열로 만들어지니 forEach로 넣어도 될것같음! if(Number(num[i])) result += Number(num[i]) } return result } 이 함수는 하나의 매개변수 my_string을 받습니다. ..

프로그래머스 2023.05.31

프로그래머스 9일차

직각삼각형 출력하기 문제 "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. 정답풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input = []; rl.on('line', function (line) { input = line.split(' '); }).on('close', function () { const num = Number(input[0]); let logStr = '..

프로그래머스 2023.05.31

팰럴랙스 이펙트 7번 8번

완성된 화면 입니다. HTML 화면입니다. Javascript Parallax Effect08 패럴렉스 이펙트 : 가로 효과 1 2 3 4 5 6 7 8 01 02 03 04 05 06 07 08 09 scrollTop : 0px ghkddn132@naver.com css 코드입니다. #header { position: fixed; z-index: 10000; } .parallaxs__wrap { position: fixed; top: 0; left: 0; display: flex; } .parallaxs__item { width: 100vw; height: 100vh; position: relative; } #section1 {background-color: #111;} #section2 {backgr..

프로그래머스 2023.05.31

프로그래머스 최댓값 만들기(1)

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. 입출력 예 설명 입출력 예 #1 두 수의 곱중 최댓값은 4 * 5 = 20 입니다. 입출력 예 #1 두 수의 곱중 최댓값은 31 * 24 = 744 입니다. 정답풀이 function solution(numbers) { const a = numbers.sort((a,b)=>{ return a-b }); return a[a.length - 1] * a[a.length - 2] ; }

프로그래머스 2023.05.29

프로그래머스 머쓱이보다 키 큰 사람

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요. 입출력 예 설명 입출력 예 #1 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다. 입출력 예 #2 180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다. 정답풀이 function solution(array, height) { let sum = 0; for(let i=0; i height) sum++ } return sum }

프로그래머스 2023.05.29

프로그래머스 삼각형의 완성조건 (1)

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요. 입출력 예 설명 입출력 예 #1 가장 큰 변인 3이 나머지 두 변의 합 3과 같으므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다. 입출력 예 #2 가장 큰 변인 6이 나머지 두 변의 합 5보다 크므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다. 입출력 예 #3 가장 큰 변인 222가 나머지 두 변의 합 271보다 작으므로 삼각형을 완성할 수 ..

프로그래머스 2023.05.29

프로그래머스 모음 제거

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요. 입출력 예 설명 입출력 예 #1 "bus"에서 모음 u를 제거한 "bs"를 return합니다. 입출력 예 #1 "nice to meet you"에서 모음 i, o, e, u를 모두 제거한 "nc t mt y"를 return합니다. 문제풀이 function solution(my_string) { var answer = ["a","e","i","o","u"]; let sum = ''; for (var i = 0; i < my_string.length; i++) { let char = my_string[i]; ..

프로그래머스 2023.05.29

프로그래머스 짝수 홀수 개수

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 설명 입출력 예 #1 [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다. 입출력 예 #2 [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다. 문제풀이 function solution(num_list) { let a = 0; let b = 0; for(let i=0; i

프로그래머스 2023.05.29

프로그래머스 피자 나눠 먹기 (3)

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 입출력 예 설명 입출력 예 #1 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다. 입출력 예 #2 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다. 문제풀이 function solution(slice, n) { if(n % slice === 0){ return n / slice }else{ return parseInt(n / slic..

프로그래머스 2023.05.29

프로그래머스 피자 나눠 먹기 (2)

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 입출력 예 #1 6명이 모두 같은 양을 먹기 위해 한 판을 시켜야 피자가 6조각으로 모두 한 조각씩 먹을 수 있습니다. 입출력 예 #2 10명이 모두 같은 양을 먹기 위해 최소 5판을 시켜야 피자가 30조각으로 모두 세 조각씩 먹을 수 있습니다. 입출력 예 #3 4명이 모두 같은 양을 먹기 위해 최소 2판을 시키면 피자가 12조각으로 모두 세 조각씩 먹을 수 있습니다. 문제풀이 function solution(n) { for(let ..

프로그래머스 2023.05.29

프로그래머스 배열 자르기

정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 설명 입출력 예 #1 [1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다. 입출력 예 #2 [1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다. 문제풀이 function solution(numbers, num1, num2) { return numbers.slice(num1,num2+1) }

프로그래머스 2023.05.29

프로그래머스 아이스 아메리카노

머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 설명 입출력 예 #1 5,500원은 아이스 아메리카노 한 잔을 살 수 있고 잔돈은 0원입니다. 입출력 예 #2 15,000원은 아이스 아메리카노 두 잔을 살 수 있고 잔돈은 4,000원입니다. 문제풀이 function solution(money) { const don = Math.floor(money/5500); const result = money%5500; let sum =[don,result]..

프로그래머스 2023.05.29

프로그래머스 옷가게 할인 받기

머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요. 입출력 예 설명 입출력 예 #1 150,000원에서 5%를 할인한 142,500원을 return 합니다. 입출력 예 #2 580,000원에서 20%를 할인한 464,000원을 return 합니다. 문제풀이 function solution(price) { if (price >= 500000) { return Math.floor(price - (price * 0.2)); } else if (price >= 300000) { return Math.floor(price - ..

프로그래머스 2023.05.29

프로그래머스 배열 원소의 길이

문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요. 입출력 예 설명 입출력 예 #1 ["We", "are", "the", "world!"]의 각 원소의 길이인 [2, 3, 3, 6]을 return합니다. 입출력 예 #2 ["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다. 문제풀이 function solution(strlist) { const a= strlist; let sum = []; for(let i=0; i

프로그래머스 2023.05.27

프로그래머스 특정 문자 제거하기

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요. 입출력 예 #1 "abcdef" 에서 "f"를 제거한 "abcde"를 return합니다. 입출력 예 #2 "BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다. 정답풀이 function solution(my_string, letter) { return my_string.replaceAll(letter, ""); }

프로그래머스 2023.05.26

프로그래머스 점의 위치 구하기

사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. 입출력 예 설명 입출력 예 #1 dot이 [2, 4]로 x 좌표와 y 좌표 모두 양수이므로 제 1 사분면에 속합니다. 따라서 1을 return 합니다. 입출력 예 #2 dot이 [-7, 9]로 x 좌표가 음수, y 좌표가 양수이므로 제 2 사분면에 속합니다. 따라서 2를 return 합니다. 정답풀이 function solution(dot) { let a = dot; if(a[0] >= 0 && a[1] >= 0){ return 1; } else if ( a[0] = 0){ return 2; } else if(a[0] < 0 && a[1] 0 && a[1] < 0){..

프로그래머스 2023.05.23

프로그래머스 편지

머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요. 입출력 예 설명 입출력 예 #1 message의 글자 수가 15개로 최소 가로 30cm의 편지지가 필요합니다. 입출력 예 #2 message의 글자 수가 11개로 최소 가로 22cm의 편지지가 필요합니다. 문제풀이 function solution(message) { const a = message.slice(); const b = a.length*2; return b; }

프로그래머스 2023.05.22

프로그래머스 배열 뒤집기

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요. 입출력 예 설명 입출력 예 #1 num_list가 [1, 2, 3, 4, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 4, 3, 2, 1]을 return합니다. 입출력 예 #2 num_list가 [1, 1, 1, 1, 1, 2]이므로 순서를 거꾸로 뒤집은 배열 [2, 1, 1, 1, 1, 1]을 return합니다. 입출력 예 #3 num_list가 [1, 0, 1, 1, 1, 3, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 3, 1, 1, 1, 0, 1]을 return합니다. 문제풀이 function solution(num_list..

프로그래머스 2023.05.22