[Baekjoon] 2903-πŸ”’μ€‘μ•™ 이동 μ•Œκ³ λ¦¬μ¦˜

ChobbyΒ·2023λ…„ 10μ›” 6일
1

Baekjoon

λͺ©λ‘ 보기
28/108

πŸ˜€λ¬Έμ œ

μƒκ·Όμ΄λŠ” μΉœκ΅¬λ“€κ³Ό ν•¨κ»˜ SFμ˜ν™”λ₯Ό 찍으렀고 ν•œλ‹€. 이 μ˜ν™”λŠ” 외계 μ§€ν˜•μ΄ ν•„μš”ν•˜λ‹€. μ‹€μ œλ‘œ μš°μ£Όμ„ μ„ 타고 외계 행성에 κ°€μ„œ μ΄¬μ˜μ„ ν•  수 μ—†κΈ° λ•Œλ¬Έμ—, 컴퓨터 κ·Έλž˜ν”½μœΌλ‘œ CG처리λ₯Ό ν•˜λ €κ³  ν•œλ‹€.

외계 μ§€ν˜•μ€ 쀑앙 이동 μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•΄μ„œ λ§Œλ“€λ €κ³  ν•œλ‹€.

μ•Œκ³ λ¦¬μ¦˜μ„ μ‹œμž‘ν•˜λ©΄μ„œ μƒκ·Όμ΄λŠ” μ •μ‚¬κ°ν˜•μ„ μ΄λ£¨λŠ” 점 4개λ₯Ό κ³ λ₯Έλ‹€. κ·Έ ν›„μ—λŠ” λ‹€μŒκ³Ό 같은 과정을 κ±°μ³μ„œ μ§€ν˜•μ„ λ§Œλ“ λ‹€.

μ •μ‚¬κ°ν˜•μ˜ 각 λ³€μ˜ 쀑앙에 점을 ν•˜λ‚˜ μΆ”κ°€ν•œλ‹€.
μ •μ‚¬κ°ν˜•μ˜ 쀑심에 점을 ν•˜λ‚˜ μΆ”κ°€ν•œλ‹€.
초기 μƒνƒœμ—μ„œ μœ„μ™€ 같은 과정을 ν•œ 번 거치면 총 4개의 μ •μ‚¬κ°ν˜•μ΄ μƒˆλ‘œ 생긴닀. 이와 같은 과정을 상근이가 λ§Œμ‘±ν•  λ•Œ κΉŒμ§€ κ³„μ†ν•œλ‹€.

μ•„λž˜ 그림은 과정을 총 2번 거쳀을 λ•ŒκΉŒμ§€μ˜ λͺ¨μŠ΅μ΄λ‹€.

초기 μƒνƒœ - 점 4개 1번 - 점 9개 2번 - 25개
μƒκ·Όμ΄λŠ” μ–΄λ–€ 점은 ν•œ 개 보닀 λ§Žμ€ μ •μ‚¬κ°ν˜•μ— 포함될 수 μžˆλ‹€λŠ” 사싀을 μ•Œμ•˜λ‹€. λ©”λͺ¨λ¦¬ μ†Œλͺ¨λŸ‰μ„ 쀄이기 μœ„ν•΄μ„œ μ€‘λ³΅ν•˜λŠ” 점을 ν•œ 번만 μ €μž₯ν•˜λ €κ³  ν•œλ‹€. 과정을 N번 거친 ν›„ 점 λͺ‡ 개λ₯Ό μ €μž₯ν•΄μ•Ό ν•˜λŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.


πŸ˜μž…λ ₯

첫째 쀄에 N이 주어진닀. (1 ≀ N ≀ 15)


πŸ˜‚μΆœλ ₯

첫째 쀄에 과정을 N번 거친 ν›„ 점의 수λ₯Ό 좜λ ₯ν•œλ‹€.


🀣예제

예제 μž…λ ₯ 1

  • 1

예제 좜λ ₯ 1

  • 9

예제 μž…λ ₯ 2

  • 2

예제 좜λ ₯ 2

  • 25

예제 μž…λ ₯ 3

  • 5

예제 좜λ ₯ 3

  • 1089

πŸ˜ƒμΆœμ²˜

  • Contest > Croatian Open Competition in Informatics > COCI 2009/2010 > Contest #4 2번
  • 문제λ₯Ό λ²ˆμ—­ν•œ μ‚¬λžŒ: baekjoon
  • 문제의 μ˜€νƒ€λ₯Ό 찾은 μ‚¬λžŒ: corea

πŸ˜„μ•Œκ³ λ¦¬μ¦˜ λΆ„λ₯˜

  • μˆ˜ν•™

πŸ˜Žλ‚˜μ˜ 풀이

const input = require('fs').readFileSync('/dev/stdin').toString().trim()
const num = Number(input)
// 졜초 ν•œ λ³€μ˜ 점 수
let pointCount = 2
let result = 0
// κ·œμΉ™μ€ κ°€μž₯ μž‘μ€ μ‚¬κ°ν˜•μ€ 2개의 점이 μžˆλ‹€λŠ” 점
// N이 λŠ˜μ–΄λ‚  경우 ν•œ λ³€μ˜ μ‚¬κ°ν˜• κ°œμˆ˜λŠ” 2배둜 λŠ˜μ–΄λ‚¨
// 큰 μ‚¬κ°ν˜•μ˜ ν•œ 변에선 μ‚¬κ°ν˜•μ˜ 수 + 1 개의 점이 있음
// 즉 N이 2인 μ‚¬κ°ν˜•μ€ μ‚¬κ°ν˜•μ΄ 4개이며 점이 5개이고, κ°€λ‘œ μ„Έλ‘œ 점의 μˆ˜λŠ” 5 * 5 = 25
// λ§Œμ•½ N이 3이라면? μ‚¬κ°ν˜•μ΄ 8개이며 점이 9개고, κ°€λ‘œ μ„Έλ‘œ 점의 μˆ˜λŠ” 9 * 9 = 81

// N이 2 이상인 κ²½μš°λΆ€ν„°, iλ₯Ό 1μ—μ„œ 1μ”© μ¦κ°€μ‹œν‚€λ©°, μ‚¬κ°ν˜•μ˜ 개수λ₯Ό 2λ°° μ¦κ°€μ‹œν‚΄
for(let i = 1 ; i < num ; i ++) {
    pointCount *= 2
}

// 결괏값은, μ‚¬κ°ν˜•μ˜ 개수 + 1(ν•œ λ³€μ˜ 점 수)에 제곱(κ°€λ‘œ * μ„Έλ‘œ)
result = (pointCount+1)**2

console.log(result)
profile
λ‚΄ 지식을 κ³΅μœ ν•  수 μžˆλŠ” λŒ€λ‹΄ν•¨

0개의 λŒ“κΈ€