본문 바로가기
Algorithm/Baekjoon

백준 10798번

by minhi 2025. 1. 1.

백준 10798번을 풀어보았다.

 

간단한 문제지만 특정 열에 문자가 존재하는지 여부를 다양하게 확인할 수 있었다.

 

1. input[r]의 길이로 확인

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())

let output = ''

for (let c = 0; c < 15; c++) {
  for(let r = 0; r < 5; r++) {
    if (input[r].length <= c) continue
    else output += input[r][c]
  }
}

console.log(output)

 

2. input[r]의 특정 열의 값으로 확인

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())

let output = ''

for (let c = 0; c < 15; c++) {
  for(let r = 0; r < 5; r++) {
    if (input[r][c] === undefined) continue
    else output += input[r][c]
  }
}

console.log(output)

 

이때 if (input[r][c] === null) 로 작성하면 안 된다.

 

막연히 null이나 undefined나 비슷하다고만 생각해왔는데,

 

배열의 길이보다 큰 인덱스에 접근하면 undefined를 반환한다.

> let arr = [1, 2, 3]
undefined
> arr[4]
undefined
> arr[4] === undefined
true
> arr[4] === null
false

 

이때 위 조건을 짧은 조건문을 사용하여 나타낼 수도 있다.

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())

let output = ''

for (let c = 0; c < 15; c++) {
  for(let r = 0; r < 5; r++) {
    output += input[r][c] || ''
  }
}

console.log(output)

 

💫 이 문제를 통해 배운 것

•  배열의 길이보다 큰 인덱스에 접근하면 undefined를 반환하며, null과 undefined는 서로 다른 값이다.
•  짧은 조건문도 잘 활용하자.

'Algorithm > Baekjoon' 카테고리의 다른 글

백준 2745번  (0) 2025.01.02
백준 2563번  (2) 2025.01.02
백준 2566번  (0) 2025.01.01
백준 2738번  (0) 2024.12.30
백준 10988번  (0) 2024.12.30