분류 전체보기 180

프로그래머스 합성수 찾기 JS ( Math.sqrt() - 제곱근을 범위로 이용 )

문제 설명 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 🙋‍♀️ 내 생각 약수의 개수를 기준으로 합성수를 판단하므로, 일단 길이가 n만큼인 배열을 만들고 그 값들을 돌면서 각각의 값의 약수의 개수를 구해야겠다고 생각했다. 그래서 n만큼의 길이를 가진 배열을 만든 다음, arr2를 또 만들어서 각 요소의 약수의 개수를 구하고 값이 3이상인것만 filter를 통해서 남긴다. 그런 다음 length를 통해서 몇 개인지 구한다. ✅ 내 코드 function solution(n) { let num =0 let arr = Array.from({ length: n }, (_, i) => i + ..

프로그래머스 피자 나눠 먹기 (2) JS ( 정확한 범위를 모를때 while문 )

문제 설명 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 🙋‍♀️ 내 생각 먼저, 문제에서 찾는값이 어떤 값인지 또 그 값에는 어떤 패턴이 있는지를 분석하기 위해서 반복되는 특징을 적었다. 피자가 6조각인 것은 fix된 값이므로 모두 6 이라고 적는다. 그런 다음 (6*피자판의 개수)를 구하면 총 피자조각들의 개수가 된다. 이 값을 다시 사람수인 n으로 나눈다. 이렇게 모두 같은 조각을 먹기위해서는 이렇게 나눈 값이 0이 되어야한다. 테스트코드를 통해 확인한 규칙은 아래와 같다...

프로그래머스 약수의 합 JS

문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 🙋‍♀️ 내 생각 지난번에 풀었던 약수를 구하는 문제에서, 거의 유사하다. 구한 약수들을 모두 합쳐서 그 합을 결괏값으로 리턴하면 된다. 아래는 지난번에 풀었던 약수구하기 문제이다. 프로그래머스 약수구하기 JS 문제 설명 정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 🙋‍♀️ 내 생각 n이라는 숫자를 매개변수로 받아서 약수를 구하고 hihiha2.tistory.com ✅ 내 코드 function solution(n) { let arr =[] for(i=1; i acc+cur,0) } 약수들을 마지막에 합을 구하기 위해서..

프로그래머스 약수구하기 JS

문제 설명 정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 🙋‍♀️ 내 생각 n이라는 숫자를 매개변수로 받아서 약수를 구하고 그 약수들로 채워진 배열을 구하는 문제이다. 이 문제를 풀면서 자바스크립트에서 약수를 어떻게 구할것인가를 중점적으로 생각해보았다. (배열에 담는것은 어렵지 않으니까) divisor이라는 변수를 선언하고 그 값을 이용해서 n을 나누는데, (n/divisor) divisor이 n이 될때까지 계속해서 나눈다. (divisor v+index+1) } 마지막으로 filter를 통해서 n을 나눈 나머지가 0인 요소만을 남긴다. function solution(n) { return Array(n).fill(0).ma..

프로그래머스 영어가 싫어요 JS ( 객체리터럴, Object.keys() / split()과 join()을 replace처럼 사용하기 )

문제 설명 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. 🙋‍♀️ 내 생각 문제를 보고 각각에 해당되는 값들을 대체하기 위해서 replace()를 써야겠다고 생각했다. 그리고 replace()를 쓰기 위해서 zero=0, one=1과 같이 해당되는 값들을 연결하기 위해서 객체를 만들었다. ✅ 내 코드 function solution(numbers) { const obj = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9 } const ..

프로그래머스 추억 점수 JS ( 객체 프로퍼티 할당하기, 각각 다른 배열 index로 연결하기 )

문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의 ..

프로그래머스 수 조작하기 2 JS ( for문 / 객체활용하기 )

문제 설명 정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다. "w" : 수에 1을 더한다. "s" : 수에 1을 뺀다. "d" : 수에 10을 더한다. "a" : 수에 10을 뺀다. 그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다. 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요. 🙋‍♀️ 내 생각 numLog의 배열을 돌면서 하나뒤의 인덱스와 앞의 인덱스의 차를 통..

프로그래머스 푸드파이트 대회 JS ( 중첩for문 )

문제 설명 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 대회의 조건..

프로그래머스 날짜 비교하기 JS ( if문 / new Date() / 뺄셈 )

문제 설명 정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요. 🙋‍♀️ 내 생각 date1의 연도와 date2의 연도를 비교한 뒤, 달을 비교하고, 날짜를 순차적으로 비교하여 0또는 1을 반환하도록 만들었다. 이를 위한 적당한 메서드는 생각이 나지 않아서, if문을 통해서 일일이 경우를 나눠서 코드를 만들었다. 우선 연도가 data1의 연도가 date2의 연도보다 작은경우와 아닌경우를 가장 크게 나누고, 또 그 안에서도 만..

프로그래머스 369게임 JS ( 반복문 사용을 위해 number를 이터러블한 타입으로 변환하기 )

문제 설명 머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요. 🙋‍♀️ 내 생각 order의 타입은 number이다. order에 3,6,9를 포함하는지 검사한 뒤, 원하는 처리를 하기 위해서는 for문이나 map과 같이 반복문을 써야하는데, 반복문은 string이나 array와 같이 이터러블하여 순회가 가능한 타입에만 사용할 수 있다. 따라서 이 문제를 풀기 위해서는 number타입으로 들어오는 매개변수를 이터러블한 값으로 먼저 바꾼..