반응형
1. 자릿수의합
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(n, arr) {
let answer = Number.MIN_SAFE_INTEGER;
let max = Number.MIN_SAFE_INTEGER;
for (let i = 0; i < arr.length; i++) {
const origin = arr[i];
const sum = String(arr[i])
.split('')
.reduce((acc, cur) => acc + Number(cur), 0);
if (max < sum) {
max = sum;
answer = origin;
} else if (max === sum) {
if (answer < origin) {
answer = origin;
}
}
}
return answer;
}
let arr = [51, 27];
console.log(solution(7, arr));
</script>
</body>
</html>
2. 뒤집은소수
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function isPrime(num) {
if (num === 1) {
return false;
}
for (let i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
function solution(arr) {
let answer = [];
for (let num of arr) {
const origin = num;
const reverted = Number(String(num).split('').reverse().join(''));
console.log(reverted);
if (isPrime(reverted)) {
answer.push(reverted);
}
}
return answer;
}
let arr = [32, 55, 62, 20, 250, 370, 200, 30, 100];
console.log(solution(arr));
</script>
</body>
</html>
3. 멘토링
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(test) {
let answer = 0;
let personCount = test[0].length;
for (let i = 1; i <= personCount; i++) {
for (let j = 1; j <= personCount; j++) {
if (i !== j) {
const mentor = i;
const mentee = j;
let isPossible = true;
for (let k = 0; k < test.length; k++) {
const mentorIndex = test[k].indexOf(i);
const menteeIndex = test[k].indexOf(j);
if (mentorIndex > menteeIndex) {
isPossible = false;
break;
}
}
if (isPossible) {
console.log(mentor, mentee);
answer++;
}
}
}
}
return answer;
}
let arr = [
[3, 4, 1, 2],
[4, 3, 2, 1],
[3, 1, 4, 2],
];
console.log(solution(arr));
</script>
</body>
</html>
4. 졸업선물
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(m, product) {
let answer = 0;
let n = product.length;
const sorted = product.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
for (let i = 0; i < sorted.length; i++) {
let count = 1;
let sum = m - (sorted[i][0] / 2 + sorted[i][1]);
for (let j = 0; j < sorted.length; j++) {
if (i !== j) {
if (sorted[j][0] + sorted[j][1] > m) {
break;
} else {
m -= sorted[j][0] + sorted[j][1];
count++;
}
}
// if (sum >= m) break;
// if (i !== j) {
// sum += sorted[j][0] + sorted[j][1];
// if (sum <= m) {
// count++;
// } else {
// break;
// }
// }
}
answer = Math.max(count, answer);
}
return answer;
}
let arr = [
[6, 6],
[2, 2],
[4, 3],
[4, 5],
[10, 3],
];
console.log(solution(28, arr));
</script>
</body>
</html>
<!-- <html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(m, product) {
let answer = 0;
let n = product.length;
product.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
for (let i = 0; i < n; i++) {
let money = m - (product[i][0] / 2 + product[i][1]);
let cnt = 1;
for (let j = 0; j < n; j++) {
if (j !== i && product[j][0] + product[j][1] > money) break;
if (j !== i && product[j][0] + product[j][1] <= money) {
money -= product[j][0] + product[j][1];
cnt++;
}
}
answer = Math.max(answer, cnt);
}
return answer;
}
let arr = [
[6, 6],
[2, 2],
[4, 3],
[4, 5],
[10, 3],
];
console.log(solution(28, arr));
</script>
</body>
</html> -->
5. k번째수
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(n, k, card) {
let answer;
let sum = new Set();
for (let i = 0; i < n - 2; i++) {
for (let j = i + 1; j < n - 1; j++) {
for (let k = j + 1; k < n; k++) {
const result = card[i] + card[j] + card[k];
sum.add(result);
}
}
}
sum = Array.from(sum).sort((a, b) => b - a);
answer = sum[k - 1];
return answer;
}
let arr = [13, 15, 34, 23, 45, 65, 33, 11, 26, 42];
console.log(solution(10, 3, arr));
</script>
</body>
</html>
반응형
'CS (컴퓨터 사이언스) > Algorithm (알고리즘)' 카테고리의 다른 글
[알고리즘] section 6 스택,큐 - 공주구하기 (0) | 2024.05.13 |
---|---|
[알고리즘] 2. 공통원소구하기 (1) | 2024.01.29 |
[알고리즘] 1. 회문문자열 / 2. 유효한 펠린드롬 / 3. 숫자만 추출 / 4. 가장짧은문자거리 / 5. 문자열압축 (0) | 2024.01.28 |
[알고리즘] 1. 큰수출력하기 / 2. 보이는 학생 / 3. 가위바위보 / 5. 등수구하기 / 6. 격자최대합 / 7. 봉우리 (0) | 2024.01.28 |
[알고리즘] 10. 문자찾기 / 11. 대문자찾기 / 12. 대문자로 통일 / 13. 대소문자 변환 / 14. 가장 긴 문자열 / 15. 가운데 문자 출력 / 16. 중복문자제거 / 17. 중복단어제거 (0) | 2024.01.28 |