[Baekjoon] 4779 - ๐Ÿ”ข์นธํ† ์–ด ์ง‘ํ•ฉ

Chobbyยท2023๋…„ 11์›” 24์ผ
1

Baekjoon

๋ชฉ๋ก ๋ณด๊ธฐ
100/108

๐Ÿ˜€๋ฌธ์ œ

์นธํ† ์–ด ์ง‘ํ•ฉ์€ 0๊ณผ 1์‚ฌ์ด์˜ ์‹ค์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ์œผ๋กœ, ๊ตฌ๊ฐ„ [0, 1]์—์„œ ์‹œ์ž‘ํ•ด์„œ ๊ฐ ๊ตฌ๊ฐ„์„ 3๋“ฑ๋ถ„ํ•˜์—ฌ ๊ฐ€์šด๋ฐ ๊ตฌ๊ฐ„์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ œ์™ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ ๋‹ค.

์ „์ฒด ์ง‘ํ•ฉ์ด ์œ ํ•œ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์นธํ† ์–ด ์ง‘ํ•ฉ์˜ ๊ทผ์‚ฌ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

  1. -๊ฐ€ 3N๊ฐœ ์žˆ๋Š” ๋ฌธ์ž์—ด์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.

  2. ๋ฌธ์ž์—ด์„ 3๋“ฑ๋ถ„ ํ•œ ๋’ค, ๊ฐ€์šด๋ฐ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ์„ (๋ฌธ์ž์—ด) 2๊ฐœ๊ฐ€ ๋‚จ๋Š”๋‹ค.

  3. ์ด์ œ ๊ฐ ์„ (๋ฌธ์ž์—ด)์„ 3๋“ฑ๋ถ„ ํ•˜๊ณ , ๊ฐ€์šด๋ฐ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ์ด ๊ณผ์ •์€ ๋ชจ๋“  ์„ ์˜ ๊ธธ์ด๊ฐ€ 1์ผ๋•Œ ๊นŒ์ง€ ๊ณ„์† ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, N=3์ธ ๊ฒฝ์šฐ, ๊ธธ์ด๊ฐ€ 27์ธ ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•œ๋‹ค.


์—ฌ๊ธฐ์„œ ๊ฐ€์šด๋ฐ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.


๋‚จ์€ ๋‘ ์„ ์˜ ๊ฐ€์šด๋ฐ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.


ํ•œ๋ฒˆ ๋”


๋ชจ๋“  ์„ ์˜ ๊ธธ์ด๊ฐ€ 1์ด๋ฉด ๋ฉˆ์ถ˜๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋งˆ์ง€๋ง‰ ๊ณผ์ •์ด ๋๋‚œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.


๐Ÿ˜์ž…๋ ฅ

์ž…๋ ฅ์„ ์—ฌ๋Ÿฌ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. ํŒŒ์ผ์˜ ๋์—์„œ ์ž…๋ ฅ์„ ๋ฉˆ์ถ˜๋‹ค. N์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 12๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.


๐Ÿ˜‚์ถœ๋ ฅ

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ N์— ๋Œ€ํ•ด์„œ, ํ•ด๋‹นํ•˜๋Š” ์นธํ† ์–ด ์ง‘ํ•ฉ์˜ ๊ทผ์‚ฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


๐Ÿคฃ์˜ˆ์ œ

์˜ˆ์ œ ์ž…๋ ฅ 1 
0
1
3
2
์˜ˆ์ œ ์ถœ๋ ฅ 1 
-
- -
- -   - -         - -   - -
- -   - -

๐Ÿ˜ƒ์ถœ์ฒ˜

  • ICPC > Regionals > North America > Mid-Atlantic Regional > 2002 Mid-Atlantic Regional Programming Contest G๋ฒˆ
  • ๋ฌธ์ œ๋ฅผ ๋ฒˆ์—ญํ•œ ์‚ฌ๋žŒ: baekjoon

๐Ÿ˜„์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜

  • ๋ถ„ํ•  ์ •๋ณต
  • ์žฌ๊ท€

๐Ÿ˜Ž๋‚˜์˜ํ’€์ด

function cantore(str) {
    if(str.includes('---')) {
        const len = str.length/3
        const splitedArr = []
        for(let i = 0 ; i <= str.length - len ; i += len) {
            splitedArr.push(str.slice(i, i+len))
        }
        splitedArr[0] = cantore(splitedArr[0])
        splitedArr[1] = splitedArr[1].replaceAll("-", " ")
        splitedArr[2] = cantore(splitedArr[2])
        return splitedArr.join("")
    }
    return str
}

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n").map(Number)
const result = input.map(a => {
    const dash = '-'.repeat(3**a)
    return cantore(dash)
})

console.log(result.join("\n"))
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€