옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • indexOf()
  • java.util패키지
  • 화살표함수
  • TypeScript
  • sort() 메서드
  • useRef
  • switch문
  • 타입스크립트
  • 함수선언
  • 리액트
  • java
  • map
  • join() 메서드
  • 변수선언
  • 템플릿리터럴
  • 혼자 공부하는 자바
  • reduce
  • Node.js
  • do-while문
  • While문
  • ==
  • 접근제한자
  • 자바
  • 인스턴스멤버
  • 기본api클래스
  • reverse() 메서드
  • 정적멤버
  • match()
  • break문
  • continue문
  • useCallback
  • 노마드코더
  • useMemo
  • useEffect
  • 코드스플리팅
  • 자바스트립트
  • 자바스크립트
  • useState
  • 리액트를다루는기술
  • map() 함수
  • JavaScript
  • 타입변환
  • toFixed
  • js
  • 혼자공부하는자바
  • fillter
  • java.lang패키지
  • template literal
  • 백준
  • join()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

[BOJ] 2738 : 행렬 덧셈 (node.js)
알고리즘

[BOJ] 2738 : 행렬 덧셈 (node.js)

2023. 3. 26. 17:03

백준 2738번을 풀다가 아래 사진까지는 유도를 했는데 이중배열일 경우 

아래의 예제 출력처럼 출력하는 방법이 궁금했다.

sol 1.

많은 사람들이 이 방법을 이용해서 풀이를 했다

하지만 console을 찍었을 때

마지막 줄에도 + "\n"가 되어 줄바꿈이 출력되는 것이 신경 쓰였다.

 

sol 2.

두번째 방법으로 찾아본 방법은 forEach로 해보았다.

사실 forEach에 대한 문법은 잘 알지 못했는데 이번에 제대로 찾아보게 되었다.

 

forEach 메서드

배열에서 루프를 돌 때 사용

array.forEach(function(currentValue, index, arr));
  • function(currentValue, index, arr) - 배열의 각 항목에 대해 실행할 함수
  • currentValue - 배열의 값
  • index( 선택 사항 ) - 현재 항목의 인덱스
  • arr ( 선택 사항 ) - 현재 항목의 배열
let students = ['Yeeun', 'Jisu', 'Sumin'];

students.forEach(myFunction);

function myFunction(item, index, arr) {
	arr[index] = "Hello" + item;
}

console.log(students);

// ["Hello John", "Hello Sara", "Hello Jack"]

화살표 함수와 forEach

const students = ['Yeeun', 'Jisu', 'Sumin'];
const copyItems = [];

students.forEach(function(item) {
  console.log(element);
});

// Yeeun
// Jisu
// Sumin
forEach를 공부하다보니 map과 무엇이 다른지가 궁금했다.
  forEach() map()
기본 형식 배열명.forEach(function(매개변수) {
      실행문;
});
배열명.map(function(매개변수) {
    실행문;
})
설명 - 반복문 기능을 지닌 배열 메서드
- 배열의 요소를 순회하며, 모두 순회하면 실행을 멈춤
- 'break;' 사용이 불가
- for문보다 속도가 빠름
- map도 반복문 기능을 가지지만, 반환값이 있다는 점에서
forEach와 다름

- 배열의 요소를 순회하며, 모두 순회하면 실행을 멈춤
- 'break;' 사용이 불가
- 기존 배열의 값이 바뀌는게 아니라 새로운 배열을 만듦

→ 둘의 가장 큰 차이는 Return 값이다. forEach는 기존 Array를 변경하고 Map은 새로운 배열을 반환한다.

 

sol 3.

그래서 map으로도 코드를 짜봤더니 이렇게도 console이 잘 찍혔다.

 

최종 코드

let input = require('fs').readFileSync('/dev/stdin').toString().split("\n");
let [N, M] = input[0].split(" ").map(Number);

let A = [];
let B = [];
let array = [];
for(let i = 0 ; i < N ; i++) {
    array.push([]);
}

for (let i = 0 ; i < N ; i++) {
    A.push(input[i+1].split(" ").map(Number));
    B.push(input[i+1+N].split(" ").map(Number));
}

for(let n = 0 ; n < N ; n++) {
    for(let m = 0 ; m < M ; m++) {
        array[n].push(A[n][m] + B[n][m]);
    }
}

const sol = array.map((e) => e.join(" "));
console.log(sol.join("\n"));
저작자표시 비영리 변경금지 (새창열림)

'알고리즘' 카테고리의 다른 글

[알고리즘] 탐욕법(Greedy)  (0) 2024.02.06
[알고리즘] 완전탐색 예제 # 1 단순 브루트포스  (0) 2024.02.05
[알고리즘] 완전 탐색  (1) 2024.02.02
[알고리즘] Hash  (2) 2023.12.06
[알고리즘] 브루트 포스(brute force)  (0) 2023.05.01
    '알고리즘' 카테고리의 다른 글
    • [알고리즘] 완전탐색 예제 # 1 단순 브루트포스
    • [알고리즘] 완전 탐색
    • [알고리즘] Hash
    • [알고리즘] 브루트 포스(brute force)
    옝옹
    옝옹

    티스토리툴바