본문 바로가기
Algorithm/Baekjoon

백준 2903번

by minhi 2025. 1. 9.

백준 2903번을 풀어보았다.

 

간단한 문제이지만 다양한 관점에서 규칙을 표현할 수 있다.

 

1.

 

한 변의 점의 개수가 2, 2+(2-1), 3+(3-1), 5+(5-1), 9+(9-1), ... 과 같이 증가한다고 볼 경우 다음과 같이 풀이할 수 있다.

let N = require('fs').readFileSync('/dev/stdin').toString()

N = Number(N)

let dot = 2

for (let i = 0; i < N; i++) {
  dot += dot - 1
}

console.log(dot ** 2)

 

2.

 

한 변의 점의 개수가 2, 2+2^0 + 2+2^1, 2+2^2, 2+2^3, ... 과 같이 증가한다고 볼 경우 다음과 같이 풀이할 수 있다.

let N = require('fs').readFileSync('/dev/stdin').toString()

N = Number(N)

let dot = 2

for (let i = 0; i < N; i++) {
  dot += 2 ** i
}

console.log(dot ** 2)

 

3.

 

한 변의 점의 개수가 2, 2*2-1, (2*2-1)*2-1, ((2*2-1)*2-1)*2-1, ... 과 같이 증가한다고 볼 경우 다음과 같이 풀이할 수 있다.

let N = require('fs').readFileSync('/dev/stdin').toString()

N = Number(N)

let dot = 2

for (let i = 0; i < N; i++) {
  dot = dot * 2 - 1
}

console.log(dot ** 2)

 

4. 

 

한 변의 점의 개수가 2^1+1, 2^2+1, 2^3+1, 2^4+1, ... 과 같이 증가한다고 볼 경우 다음과 같이 풀이할 수 있다.

let N = require('fs').readFileSync('example.txt').toString()

N = Number(N)

console.log((2 ** N + 1) ** 2)

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

백준 2292번  (0) 2025.01.10
백준 2720번  (0) 2025.01.10
진법 관련 유형  (0) 2025.01.09
백준 11005번  (0) 2025.01.09
백준 2745번  (0) 2025.01.02