한번씩 읽고 가세요.
“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
문제 설명
머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.
제한사항
1 ≤ order ≤ 1,000,000
입출력 예
order result
3 1
29423 2
입출력 예 설명
입출력 예 #1
3은 3이 1개 있으므로 1을 출력합니다.
입출력 예 #2
29423은 3이 1개, 9가 1개 있으므로 2를 출력합니다.
※ 공지 - 2023년 03월 24일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
풀이
function solution(order) {
let value = order.toString().match(/[369]/g)??[]
return value.length;
}
다른풀이
function solution(order) {
var answer = 0;
const a = order.toString()
for(let i=0;i<a.length;i++){
if(a[i] == 3 || a[i] == 6 || a[i] == 9){
answer += 1
}
}
return answer;
}
중복된 문자 제거
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ my_string ≤ 110
my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
대문자와 소문자를 구분합니다.
공백(" ")도 하나의 문자로 구분합니다.
중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
입출력 예
my_string result
"people" "peol"
"We are the world" "We arthwold"
입출력 예 설명
입출력 예 #1
"people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.
입출력 예 #2
"We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.
풀이
function solution(my_string) {
return [...new Set(my_string)].join('');
}
다른풀이
A로 B 만들기
문제 설명
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 < before의 길이 == after의 길이 < 1,000
before와 after는 모두 소문자로 이루어져 있습니다.
입출력 예
before after result
"olleh" "hello" 1
"allpe" "apple" 0
입출력 예 설명
입출력 예 #1
"olleh"의 순서를 바꾸면 "hello"를 만들 수 있습니다.
입출력 예 #2
"allpe"의 순서를 바꿔도 "apple"을 만들 수 없습니다.
풀이
function solution(before, after) {
return before.split('').sort().join('') === after.split('').sort().join('') ? 1 : 0
다른 풀이
function solution(before, after) {
const obj = {};
for(let i = 0; i < before.length; i++){
obj[before[i]] = obj[before[i]] ? obj[before[i]] + 1 : 1;
}
for(let i = 0; i < after.length; i++){
console.log(obj[after[i]])
if(!obj[after[i]]) return 0;
else obj[after[i]]--;
}
return 1;
}
팩토리얼
문제 설명
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
i! ≤ n
제한사항
0 < n ≤ 3,628,800
입출력 예
n result
3628800 10
7 3
입출력 예 설명
입출력 예 #1
10! = 3,628,800입니다. n이 3628800이므로 최대 팩토리얼인 10을 return 합니다.
입출력 예 #2
3! = 6, 4! = 24입니다. n이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.
}
풀이
function solution(n) {
let i = 1;
let factorial = 1;
while (factorial <= n){
i += 1;
factorial *= i
}
return i -1;
}
다른풀이
function solution(n) {
let sum = 1;
for(let i = 1; i <= 10; i++){
sum *= i;
if(n === sum) return i;
if(n < sum) return i - 1;
}
}