티스토리 뷰
알고리즘/HackerRank
[HackerRank] Arrays - (Easy)2D Array - DS (모래시계 합) javascript 문제 풀이
miiingo 2021. 6. 22. 15:04반응형
■ 문제
2D Array - DS | HackerRank
How to access and use 2d-arrays.
www.hackerrank.com
난이도: Easy
최대 스코어: 15
● 문제 요약
- 6 X 6 배열이 주어짐
- hourglass(모래시계)는 I 모양으로 이루어진 패턴에 해당하는 인덱스들의 하위집합을 의미
- hourglass sum은 hourglass(모래시계) 값들의 합계
- 모든 hourglass(모래시계)에 대한 hourglass sum을 계산한 다음, 최대 hourglass sum를 return
예시:
arr = [
-9 -9 -9 1 1 1
0 -9 0 4 3 2
-9 -9 -9 1 2 3
0 0 8 6 6 0
0 0 0 -2 0 0
0 0 1 2 4 0
]
- 16개의 hourglass(모래시계)에 대한 각각의 hourglass sum
-63, -34, -9, 12,
-10, 0, 28, 23,
-27, -11, -2, 10,
9, 17, 25, 18
==> 최대 hourglass sum인 28을 return
■ 문제 풀이
hourglass(모래시계)은 I 모양의 패턴을 가졌기 때문에 hourglass sum은 arr[i][j] + arr[i][j+1] + arr[i][j+2] + arr[i+1][j+1] + arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2]가 된다.
그래서 for문을 돌며 각각의 hourglass sum을 구한 다음, 최대 값을 return하면 된다.
● 완성 코드 - 15 Points (Max)
'use strict';
const fs = require('fs');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', inputStdin => {
inputString += inputStdin;
});
process.stdin.on('end', _ => {
inputString = inputString.replace(/\s*$/, '')
.split('\n')
.map(str => str.replace(/\s*$/, ''));
main();
});
function readLine() {
return inputString[currentLine++];
}
// Complete the hourglassSum function below.
function hourglassSum(arr) {
let hourglass = 0;
let maximum = Number.MIN_SAFE_INTEGER;
for(let i=0; i<4; i++){
for(let j=0; j<4; j++){
hourglass = arr[i][j] + arr[i][j+1] + arr[i][j+2] + arr[i+1][j+1] + arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2];
if(hourglass > maximum){
maximum = hourglass;
}
}
}
return maximum;
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
let arr = Array(6);
for (let i = 0; i < 6; i++) {
arr[i] = readLine().split(' ').map(arrTemp => parseInt(arrTemp, 10));
}
let result = hourglassSum(arr);
ws.write(result + "\n");
ws.end();
}
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 빅데이터 강의
- Hyperledger Fabric
- 빅데이터
- 빅데이터 교육
- 하이퍼레저 패브릭
- 직딩잇템
- 하이퍼레저 인디
- 블록체인
- Hyperledger Fabric v1.1
- 하이퍼레저 페브릭
- 어서와 데이터는 처음이지
- 코딩테스트
- Hyperledger Indy
- Private Data
- Blockchain
- 빅데이터 기초
- 암브로셔스
- 코테
- DOCs
- 문제풀이
- 코딜리티
- 블록 체인
- docker
- ambrosus
- 기초 of 기초 데이터 개념
- ubuntu
- codility
- Hyperledger Fabric v1.2
- javascript
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함