2차원 배열 단계의 첫 번째 시간이다.
좋아~~ 힘차게 고!
문제
https://www.acmicpc.net/step/2
2차원 배열 단계
2차원 배열을 활용하여 색종이로 평면을 덮는 문제
www.acmicpc.net
문제 2738번
https://www.acmicpc.net/problem/2738
2738번: 행렬 덧셈
첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같
www.acmicpc.net
음... 배열을 만들어서 입력된 행렬들의 값을 더해서 배열에 위치에 맞게 넣어주면 될 것 같은데...
어떻게 작성해야 할지 좀 헷갈렸다.
찾아보니 잘 정리되어 있는 풀이가 있었다.
그래서 사용 방법을 익혀서 작성해 봤다.
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require("fs").readFileSync(readFileSyncAdress).toString().trim().split('\n').map(x=>x.split(' ').map(Number));
const [n, m] = input.shift(); //shift()를 통해 해당 요소 제거
//nXm 배열 생성
let arr = new Array(n).fill().map(()=>new Array(m).fill(0));
//입력받은 행렬의 각 값을 합해서 생성한 배열에 넣기
for(let i=0;i<n;i++){
for(let j=0;j<m;j++){
arr[i][j] = input[i][j]+input[i+n][j];
}
}
//출력 조건에 맞게 result배열에 넣기
let result = [];
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[0].length;j++){
result += arr[i][j] + ' ';
}
result += '\n';
}
console.log(result);
입력을 받을 때 미리 나눠주니 좋은 것 같다.
그리고 shift()를 통해 사용한 요소를 제거하니 다음 입력값을 사용할 때 편했다.
[참고] https://minjo0n.tistory.com/5
문제 2566번
https://www.acmicpc.net/problem/2566
2566번: 최댓값
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.
www.acmicpc.net
이 문제는 최댓값과 해당 인덱스를 저장할 변수를 만들고 for문을 이용하여 풀면 될 것 같다.
여기서 주의할 점은 행 번호랑 열 번호가 1부터 시작한다는 점이다. 그러니 인덱스에서 각각의 값에 1을 더해줘야 한다.
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require("fs").readFileSync(readFileSyncAdress).toString().trim().split('\n').map(x=>x.split(' ').map(Number));
let max = 0;
let index = [];
for(let i=0;i<9;i++){
for(let j=0;j<9;j++){
if(input[i][j]>=max){
max = input[i][j];
index = [i+1,j+1];
}
}
}
console.log(max);
console.log(index.join(' '));
예제로 테스트했을 때는 잘 출력됐는데 '틀렸습니다'가 나와서 코드를 다시 한번 자세히 봤다.
그런데 input [i][j]와 max를 비교해 줄 때 '='를 빼먹어서 그런 것이었다. 내가 max를 0으로 초기화를 했기 때문에 최댓값이 0이라면 index에는 아무 값도 들어오지 않는다.
ㅎㅎ... 잘 생각해야지...
오늘은 여기까지~~
'백준 > JavaScript' 카테고리의 다른 글
[JS] 백준 2차원 배열 - 마지막 이야기 (0) | 2024.01.30 |
---|---|
[JS] 백준 2차원 배열 - 두 번째 이야기 (0) | 2024.01.28 |
[JS] 백준 심화 1 - 마지막 이야기 (0) | 2024.01.26 |
[JS] 백준 심화 1 - 세 번째 이야기 (0) | 2024.01.25 |
[JS] 백준 심화 1 - 두 번째 이야기 (0) | 2024.01.24 |