문제 1
- 두 자연수 a와 b가 주어질 때, 이 둘의 최대공약수를 구하는 함수를 작성하세요
- 제한사항:
- a, b는 1 이상 1000 이하의 자연수입니다.
function solution(a, b) {
let answer = 0;
for (let i = 0; i <= Math.max(a, b); i++) {
if (a % i === 0 && b % i === 0)
answer = i;
}
return answer;
}
console.log(solution(50,16)); // 2
문제 2
주어진 배열에서 짝수와 홀수의 개수를 각각 세는 함수를 작성하세요. 함수는 [짝수 개수, 홀수 개수]의 배열을 반환해야 합니다.
제한사항:
- 배열의 길이는 1 이상 1000 이하입니다.
- 배열의 원소는 1 이상 1000 이하의 자연수입니다.
function solution(arr){
let answer = [0,0];
arr.forEach(a => {
if (a % 2 === 0)
answer[0] ++;
else
answer[1] ++;
});
return answer;
}
console.log(solution([1,2,3,4,5,6,7])); // [ 3, 4 ]
문제 3
문자열이 주어지면 해당 문자열을 역순으로 배치한 후, 알파벳을 하나씩 오른쪽으로 이동시킨 결과를 출력하세요. 예를 들어, a는 b, z는 a로 변환됩니다.
제한사항:
- 문자열은 소문자 알파벳으로만 구성됩니다.
- 문자열의 길이는 1 이상 1000 이하입니다.
function solution(arr){
const answer = [];
arr = [...arr].reverse();
for(let i=0; i<arr.length; i++){
let ASCI = arr[i].charCodeAt();
answer.push(String.fromCharCode(ASCI+1));
}
return answer.join('');
}
console.log(solution("hello")); // pmmfi
문제 4
회전 초밥을 먹을 때, 접시들의 번호가 주어집니다. 이 중에서 임의의 연속된 접시를 선택하여 먹을 때, 가능한 모든 선택에서 가장 다양한 초밥 종류의 개수를 구하세요.
제한사항:
- 접시의 개수는 2 이상 1000 이하입니다.
- 각 접시는 1 이상 30 이하의 정수로 표현됩니다.
이해 못함.. 수요일에 해설 잘 듣기
문제 5
양의 정수가 주어질 때, 숫자에서 **k**개의 자릿수를 제거하여 얻을 수 있는 가장 큰 수를 구하세요.
제한사항:
- **number**는 최대 1,000,000자리까지 입력될 수 있습니다.
- **k**는 1 이상 len(number) - 1 이하입니다.
function solution(number, k) {
const result = [];
let arr = [...number.toString()];
let max = 0;
let count = arr.length - k;
for (let j = 0; j < count; j++) {
for (let i = 0; i < k+1; i++) {
if (arr[i] > max)
max = arr[i];
}
result.push(max);
k -= arr.indexOf(max);
arr.splice(0, arr.indexOf(max)+1);
max = 0;
}
return result.join('')
}
console.log(solution(1924, 2)); // 94
'TIL' 카테고리의 다른 글
TIL 8/20 - 데일리 루틴 28번 ~ 39번 (0) | 2024.08.20 |
---|---|
TIL 8/20 (1) - 알고리즘 문제풀이 2 (0) | 2024.08.20 |
TIL 8/16 - JavaScript 문법 종합반 3주차 (0) | 2024.08.19 |
TIL 8/14 - JavaScript 문법 종합반 3주차 (0) | 2024.08.14 |
TIL 8/13 - JavaScript 문법 종합반 2주차, 3주차 초반 (0) | 2024.08.13 |