반응형
1. 큰수출력하기
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer = [];
answer.push(arr[0]);
for (let i = 1; i < arr.length; i++) {
if (arr[i] > arr[i - 1]) {
answer.push(arr[i]);
}
}
return answer;
}
let arr = [7, 3, 9, 5, 6, 12];
console.log(solution(arr));
</script>
</body>
</html>
2. 보이는 학생
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer = 1;
let maxheight = arr[0];
for (let h of arr) {
if (h > maxheight) {
maxheight = h;
answer++;
}
}
return answer;
}
let arr = [130, 135, 148, 140, 145, 150, 150, 153];
console.log(solution(arr));
</script>
</body>
</html>
3. 가위바위보
5. 등수구하기
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer = [];
for (let i = 0; i < arr.length; i++) {
let rank = 1;
for (let j = 0; j < arr.length; j++) {
if (arr[i] < arr[j]) {
rank++;
}
}
answer.push(rank);
}
return answer;
}
let arr = [87, 89, 92, 100, 76];
console.log(solution(arr));
</script>
</body>
</html>
6. 격자최대합
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer = 0;
let sum = 0;
let sum2 = 0;
for (let i = 0; i < arr.length; i++) {
sum = 0;
sum2 = 0;
for (let j = 0; j < arr.length; j++) {
sum += arr[i][j];
sum2 += arr[j][i];
}
answer = Math.max(answer, sum, sum2);
}
sum = 0;
sum2 = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i][i];
sum2 += arr[arr.length - 1 - i][i];
}
answer = Math.max(answer, sum, sum2);
return answer;
}
[0, 0][(1, 1)][(2, 2)];
let arr = [
[10, 13, 10, 12, 15],
[12, 39, 30, 23, 11],
[11, 25, 50, 53, 15],
[19, 27, 29, 37, 27],
[19, 13, 30, 13, 19],
];
console.log(solution(arr));
</script>
</body>
</html>
7. 봉우리
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer = 0;
const n = arr.length;
const dx = [-1, 0, 1, 0];
const dy = [0, 1, 0, -1];
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
let cnt = 4;
// const 기준 = i >= 0 && j >= 0 && i < n && j < n && arr[i][j];
// const up =
// i >= 0 && j + 1 >= 0 && i < n && j + 1 < n && arr[i][j + 1];
// const down =
// i >= 0 && j - 1 >= 0 && i < n && j - 1 < n && arr[i][j - 1];
// const left =
// i - 1 >= 0 && j >= 0 && i - 1 < n && j < n && arr[i - 1][j];
// const right =
// i + 1 >= 0 && j >= 0 && i + 1 < n && j < n && arr[i + 1][j];
for (let k = 0; k < 4; k++) {
//x좌표,y좌표
let nx = i + dx[k];
let ny = j + dy[k];
if (
nx >= 0 &&
ny >= 0 &&
nx < n &&
ny < n &&
arr[i][j] <= arr[nx][ny]
) {
cnt--;
break;
}
}
// if (기준 > up || !up) cnt++;
// if (기준 > down || !down) cnt++;
// if (기준 > left || !left) cnt++;
// if (기준 > right || !right) cnt++;
if (cnt === 4) answer++;
}
}
return answer;
}
let arr = [
[5, 3, 7, 2, 3],
[3, 7, 1, 6, 1],
[7, 2, 5, 3, 4],
[4, 3, 6, 4, 1],
[8, 7, 3, 5, 2],
];
console.log(solution(arr));
</script>
</body>
</html>
반응형
'CS (컴퓨터 사이언스) > Algorithm (알고리즘)' 카테고리의 다른 글
[알고리즘] 1. 자릿수의합 / 2. 뒤집은소수 / 3. 멘토링 / 4. 졸업선물 / 5. k번째수 (0) | 2024.01.28 |
---|---|
[알고리즘] 1. 회문문자열 / 2. 유효한 펠린드롬 / 3. 숫자만 추출 / 4. 가장짧은문자거리 / 5. 문자열압축 (0) | 2024.01.28 |
[알고리즘] 10. 문자찾기 / 11. 대문자찾기 / 12. 대문자로 통일 / 13. 대소문자 변환 / 14. 가장 긴 문자열 / 15. 가운데 문자 출력 / 16. 중복문자제거 / 17. 중복단어제거 (0) | 2024.01.28 |
[알고리즘] 8. 일곱난쟁이 / 9. A를 #으로 (0) | 2023.12.10 |
[알고리즘] 3.연필개수 / 4. 1부터 N까지의 합 / 6.홀수 / 7 . 10부제 (0) | 2023.12.09 |