배열 자르기
정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
- 2 ≤ numbers의 길이 ≤ 30
- 0 ≤ numbers의 원소 ≤ 1,000
- 0 ≤num1 < num2 < numbers의 길이
function solution(numbers, num1, num2) {
return numbers.splice(num1, num2-num1+1);
}
// 다른 사람의 풀이
function solution(numbers, num1, num2) {
let cnt = num1;
let answer = [];
while(cnt <= num2) {
answer.push(numbers[cnt]);
cnt += 1;
}
return answer;
}
function solution(numbers, num1, num2) {
return numbers.slice(num1, num2 + 1);
}
splice(start, end)
<다른 사람의 풀이에 대한 이해>
반복문을 활용한 풀이
slice()
Q. splice()와 slice()의 차이는 무엇인가?
외계행성의 나이
우주여행을 하던 머쓱이는 엔진 고장으로 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 행성은 알파벳 소문자만 사용합니다.
function solution(age) {
let answer = '';
const stringAge = String(age);
let cnt = 0;
while(cnt < stringAge.length) {
answer += String.fromCharCode(stringAge[cnt].charCodeAt(0) + 49);
cnt += 1;
}
return answer;
}
// 다른 사람의 풀이
function solution(age) {
return age
.toString()
.split("")
.map((v) => "abcdefghij"[v])
.join("");
}
replace()를 사용하거나 if문으로 일일히 변하는 방법이 있지만, ASCII값을 활용하면 반복문으로 처리할 수 있다.
- fromCharCode()
- fromCodeAt()
<다른 사람의 풀이에 대한 이해>
toString()
split()
map()
join()
진료순서 정하기
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
- 중복된 원소는 없습니다.
- 1 ≤ emergency의 길이 ≤ 10
- 1 ≤ emergency의 원소 ≤ 100
function solution(emergency) {
let newEmergencyArray = [];
let i = 0;
while(i < emergency.length) {
newEmergencyArray.push({value: emergency[i], idx: i});
i++;
}
newEmergencyArray.sort((a, b) => b.value - a.value);
let answer = new Array(emergency.length);
i = 0;
while(i < newEmergencyArray.length) {
let item = newEmergencyArray[i];
answer[item.idx] = i + 1;
i += 1;
}
return answer;
}
// 다른 사람의 풀이
function solution(emergency) {
let sorted = emergency.slice().sort((a,b)=>b-a);
return emergency.map(v=>sorted.indexOf(v)+1);
}
function solution(emergency) {
const temp = [...emergency].sort((a,b)=>b-a)
sort()
<다른 사람의 풀이에 대한 이해>
slice()
map()
indexOf()
순서쌍의 개수
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
- 1 ≤ n ≤ 1,000,000
// 약수의 갯수와 같은 문제
// 20 => 1, 2, 4, 5, 10, 20
// 100 => 1, 2, 4, 5, 10, 20, 25, 50, 100
function solution(n) {
let answer = 0;
let divNumber = 1;
while(divNumber <= n) {
if(n % divNumber === 0) answer++;
divNumber++;
}
return answer;
}
참고 영상
'코딩테스트 > 프로그래머스 0단계 - 입문' 카테고리의 다른 글
프로그래머스 0단계 - Day10 조건문, 배열, 수학, 시뮬레이션 (0) | 2024.03.18 |
---|---|
프로그래머스 0단계 - Day9 수학, 문자열, 해시, 완전탐색, 조건문 (0) | 2024.03.18 |
프로그래머스 0단계 - Day7 문자열, 조건문, 수학, 반복문 (0) | 2024.03.17 |
프로그래머스 0단계 - Day6 문자열, 반복문, 출력, 배열, 조건문 (0) | 2024.03.16 |
프로그래머스 0단계 - Day5 수학, 배열 (0) | 2024.03.15 |
댓글