๐Ÿงก๋ฌธ์ œ ์„ค๋ช…

ํ˜ผ์ž์„œ๋„ ์ž˜ ๋…ธ๋Š” ๋ฒ”ํฌ๋Š” ์–ด๋Š ๋‚  ๋ฐฉ๊ตฌ์„์— ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ ๋”๋ฏธ๋ฅผ ๋ณด๋”๋‹ˆ ํ˜ผ์ž ํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ๋ฏธ์žˆ๋Š” ๊ฒŒ์ž„์„ ์ƒ๊ฐํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค.

์ˆซ์ž ์นด๋“œ ๋”๋ฏธ์—๋Š” ์นด๋“œ๊ฐ€ ์ด 100์žฅ ์žˆ์œผ๋ฉฐ, ๊ฐ ์นด๋“œ์—๋Š” 1๋ถ€ํ„ฐ 100๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•˜๋‚˜์”ฉ ์ ํ˜€์žˆ์Šต๋‹ˆ๋‹ค. 2 ์ด์ƒ 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ •ํ•ด ๊ทธ ์ˆ˜๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆซ์ž ์นด๋“œ๋“ค์„ ์ค€๋น„ํ•˜๊ณ , ์ค€๋น„ํ•œ ์นด๋“œ์˜ ์ˆ˜๋งŒํผ ์ž‘์€ ์ƒ์ž๋ฅผ ์ค€๋น„ํ•˜๋ฉด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒŒ์ž„ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ค€๋น„๋œ ์ƒ์ž์— ์นด๋“œ๋ฅผ ํ•œ ์žฅ์”ฉ ๋„ฃ๊ณ , ์ƒ์ž๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ž์–ด ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ž๊ฐ€ ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋˜๋ฉด ์ƒ์ž๊ฐ€ ๋‚˜์—ด๋œ ์ˆœ์„œ์— ๋”ฐ๋ผ 1๋ฒˆ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ ์ž„์˜์˜ ์ƒ์ž๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•˜์—ฌ ์„ ํƒํ•œ ์ƒ์ž ์•ˆ์˜ ์ˆซ์ž ์นด๋“œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ํ™•์ธํ•œ ์นด๋“œ์— ์ ํžŒ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ์ƒ์ž๋ฅผ ์—ด์–ด ์•ˆ์— ๋‹ด๊ธด ์นด๋“œ์— ์ ํžŒ ์ˆซ์ž๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์ƒ์ž๋ฅผ ๊ณ„์†ํ•ด์„œ ์—ด์–ด๊ฐ€๋ฉฐ, ์—ด์–ด์•ผ ํ•˜๋Š” ์ƒ์ž๊ฐ€ ์ด๋ฏธ ์—ด๋ ค์žˆ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์—ฐ ์ƒ์ž๋“ค์€ 1๋ฒˆ ์ƒ์ž ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค. ์ด์ œ 1๋ฒˆ ์ƒ์ž ๊ทธ๋ฃน์„ ๋‹ค๋ฅธ ์ƒ์ž๋“ค๊ณผ ์„ž์ด์ง€ ์•Š๋„๋ก ๋”ฐ๋กœ ๋‘ก๋‹ˆ๋‹ค. ๋งŒ์•ฝ 1๋ฒˆ ์ƒ์ž ๊ทธ๋ฃน์„ ์ œ์™ธํ•˜๊ณ  ๋‚จ๋Š” ์ƒ์ž๊ฐ€ ์—†์œผ๋ฉด ๊ทธ๋Œ€๋กœ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๋ฉฐ, ์ด๋•Œ ํš๋“ํ•˜๋Š” ์ ์ˆ˜๋Š” 0์ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋‚จ์€ ์ƒ์ž ์ค‘ ๋‹ค์‹œ ์ž„์˜์˜ ์ƒ์ž ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฏธ ์—ด๋ ค์žˆ๋Š” ์ƒ์ž๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์ƒ์ž๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฐ ์ƒ์ž๋“ค์€ 2๋ฒˆ ์ƒ์ž ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

1๋ฒˆ ์ƒ์ž ๊ทธ๋ฃน์— ์†ํ•œ ์ƒ์ž์˜ ์ˆ˜์™€ 2๋ฒˆ ์ƒ์ž ๊ทธ๋ฃน์— ์†ํ•œ ์ƒ์ž์˜ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฐ’์ด ๊ฒŒ์ž„์˜ ์ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ƒ์ž ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์นด๋“œ ๋ฒˆํ˜ธ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด cards๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ฒ”ํฌ๊ฐ€ ์ด ๊ฒŒ์ž„์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ  ์ ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


๐Ÿ’›์ œํ•œ์‚ฌํ•ญ

  • 2 โ‰ค cards์˜ ๊ธธ์ด โ‰ค 100
  • cards์˜ ์›์†Œ๋Š” cards์˜ ๊ธธ์ด ์ดํ•˜์ธ ์ž„์˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • cards์—๋Š” ์ค‘๋ณต๋˜๋Š” ์›์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • cards[i]๋Š” i + 1๋ฒˆ ์ƒ์ž์— ๋‹ด๊ธด ์นด๋“œ์— ์ ํžŒ ์ˆซ์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’š์ž…์ถœ๋ ฅ ์˜ˆ

cardsresult
[8,6,3,7,2,5,1,4]12

๐Ÿ’™์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

1, 4, 7, 8์ด ์†ํ•˜๋Š” ์ƒ์ž์˜ ๊ทธ๋ฃน๊ณผ 2, 5, 6์ด ์†ํ•˜๋Š” ์ƒ์ž์˜ ๊ทธ๋ฃน๊ณผ 3์ด ์†ํ•˜๋Š” ์ƒ์ž์˜ ๊ทธ๋ฃน์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 3๋ฒˆ ์ƒ์ž๋ฅผ ๊ณ ๋ฅด์ง€ ์•Š์•˜์„ ๋•Œ, ๋‘ ๋ฒˆ์˜ ์‹œํ–‰์—์„œ 3๊ณผ 4๋ฅผ ๊ธฐ๋กํ•˜๋ฉฐ ์ตœ๊ณ  ์ ์ˆ˜ 12๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


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

function solution(cards) {
    let answer = 0
    // ์นด๋“œ๋ฅผ ๋ฝ‘์•„ ์ด๋™ํ•˜๋Š” ํ•จ์ˆ˜
    function drawCard(arr, num, group = []) {
        // ๊ฒฝ์œ ํ•œ ์ƒ์ž๋Š” ๊ฐ’์„ 0 ์œผ๋กœ ๋ฐ”๊พธ๋ฉฐ ๋‹ค์‹œ 0์— ๋„์ฐฉํ•  ๋•Œ๊นŒ์ง€ ์žฌ๊ท€
        if(arr[num-1] === 0) return group.length
        group.push(arr[num-1])
        const temp = arr[num-1]
        arr[num-1] = 0
        num = temp
        return drawCard(arr, num, group)
    }
    // // ์ฒซ ์ƒ์ž ๊ทธ๋ฃน ๊ตฌ์„ฑ
    cards.forEach((card, idx) => {
        // cards ๋ฐฐ์—ด ์‚ฌ๋ณธ ์ƒ์„ฑ
        const copy1 = [...cards]
        const first = drawCard(copy1, card)
        // ๋‘ ๋ฒˆ์งธ ์ƒ์ž ๊ทธ๋ฃน ๊ตฌ์„ฑ
        copy1.forEach((card2, idx2) => {
            // ์—ด๋ฆฐ ์ƒ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด
            if(card2 !== 0) {
                // cards ๋ฐฐ์—ด ์‚ฌ๋ณธ ์ƒ์„ฑ
                const copy2 = [...copy1]
                const second = drawCard(copy2, card2)
                // ํ˜„์žฌ ์ตœ๋Œ€์น˜์™€ ๋น„๊ตํ•˜์—ฌ ๋” ํฐ ๊ฐ’์„ ํ• ๋‹น
                answer = Math.max(answer, first * second)
            }
        })
    })
    return answer
}
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

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