“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
1. 특정 문자 제거 하기
문제 설명
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
제한 사항
- 1 ≤ my_string의 길이 ≤ 100
- letter은 길이가 1인 영문자입니다.
- my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
- 대문자와 소문자를 구분합니다.
입출력 예
my_string | letter | result |
"abcdef" | "f" | "abcde" |
"BCBdbe" | "B" | "Cdbe" |
입출력 예 설명
- "abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.
- "BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.
풀이
function solution(my_string, letter) {
var answer = '';
for(var i=0; i<my_string.length; i++){
if(my_string[i] !== letter){
answer += my_string[i];
}
}
return answer;
}
my_string에서 letter를 제거한 문자열을 생성해 반환합니다.
문자열을 순회하면서 현재 문자가 letter와 일치하지 않으면 answer에 추가합니다.
최종적으로 answer를 반환합니다.
예를 들어 solution("abcdef", "f")를 호출하면 "abcdef"에서 "f"를 제거한 "abcde"가 반환됩니다.
또한 solution("BCBbde", "B")를 호출하면 "BCBdbe"에서 "B"를 모두 제거한 "Cdbe"가 반환됩니다.
2. 양꼬치
문제설명
머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < n < 1,000
- n / 10 ≤ k < 1,000
- 서비스로 받은 음료수는 모두 마십니다.
입출력 예
n | k | result |
10 | 3 | 124,000 |
64 | 6 | 768,000 |
입출력 예 설명
- 10인분을 시켜 서비스로 음료수를 하나 받아 총 10 * 12000 + 3 * 2000 - 1 * 2000 = 124,000원입니다.
- 64인분을 시켜 서비스로 음료수를 6개 받아 총 64 * 12000 + 6 * 2000 - 6 * 2000 =768,000원입니다.
풀이
function solution(n, k) {
var yakitoriPrice = 12000;
var drinkPrice = 2000;
var freeDrinkCount = Math.floor(n/10);
var totalPrice = n * yakitoriPrice + (k - freeDrinkCount)*drinkPrice;
return totalPrice;
}
yakitoriPrice 변수에 양꼬치 1인분의 가격인 12,000원을 할당합니다.
drinkPrice변수에 음료수 1개의 가격인 2,000원을 할당합니다.
freeDrinkCount 변수에 양꼬치 인분 수 n을 10으로 나눈 몫을 할당합니다. 이는 서비스로 받을 수 있는 음료수의 개수입니다.
totalPrice 변수에 n인분의 양꼬치 가격과 k개의 음료수 가격을 계산하여 할당합니다.
양꼬치 가격은 k-freeDrinkCount 개를 구매한 경우를 고려해 (k-freeDrinkCount )*drinkPrice 로 계산합니다.
totalPrice 를 반환
3. 외계행성의 나이
문제설명
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
제한사항
- age는 자연수입니다.
- age ≤ 1,000
- PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.
입출력예
age | result |
23 | "cd" |
51 | "fb" |
100 | "baa" |
입출력예설명
- age가 23이므로 "cd"를 return합니다.
- age가 51이므로 "fb"를 return합니다.
- age가 100이므로 "baa"를 return합니다.
풀이
function solution(age) {
var answer = '';
const alphabet = 'abcdefghij';
while(age>0){
const remainder = age%10;
answer = alphabet[remainder]+answer;
age=Math.floor(age/10);
}
return answer;
}
주어진 나이를 10으로 나눈 나머지 알파벳으로 변환하여 결과 문자열인 answer의 앞에 추가하고, 나이를 10으로 나눈 몫을 갱신합니다. 이 과정을 나이가 0보다 큰 동안 반복합니다.
age가 23인 경우 age를 10으로 나눈 나머지가 3이므로 answer에 d를 추가합니다. 그 후 age 를 10으로 나눈 몱이 2가 되고, 이를 반복하여 answer에 c를 추가합니다.
4. 진료순서정하기
문제설명
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 중복된 원소는 없습니다.
- 1 ≤ emergency의 길이 ≤ 10
- 1 ≤ emergency의 원소 ≤ 100
입출력예
emergency | result |
[3,76,24] | [3,1,2] |
[1,2,3,4,5,6,7] | [7,6,5,4,3,2,1] |
[30,10,23,6,100] | [2,4,3,5,1] |
입출력예설명
- emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.
- emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.
- emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.
풀이