๐Ÿ” ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ˜ผ์ž ๋†€๊ธฐ์˜ ๋‹ฌ์ธ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ

kk_0128_ยท2025๋…„ 4์›” 7์ผ
0

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
7/8
post-thumbnail

๋ฌธ์ œ ์„ค๋ช…

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

์ˆซ์ž ์นด๋“œ ๋”๋ฏธ์—๋Š” ์นด๋“œ๊ฐ€ ์ด 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๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

def solution(cards):
    answer = 0
    visited = [False for _ in range(len(cards))]  # ๊ฐ ์ƒ์ž๊ฐ€ ์—ด๋ ธ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฐ์—ด
    lst = []  # ๊ฐ ๊ทธ๋ฃน์˜ ํฌ๊ธฐ๋ฅผ ์ €์žฅํ•  ๋ฆฌ์ŠคํŠธ
    
    for i in range(len(cards)):  # ๋ชจ๋“  ์ƒ์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ทธ๋ฃน์„ ํ˜•์„ฑ
        if visited[i]:  # ์ด๋ฏธ ์—ด๋ ธ๋‹ค๋ฉด ๊ฑด๋„ˆ๋œ€
            continue
        visited[i] = True  # ํ˜„์žฌ ์ƒ์ž๋ฅผ ์—ด์—ˆ๋‹ค๊ณ  ํ‘œ์‹œ
        cur, linked = i, 1  # ํ˜„์žฌ ์ƒ์ž์˜ ์ธ๋ฑ์Šค์™€ ๊ทธ๋ฃน ํฌ๊ธฐ๋ฅผ ์ดˆ๊ธฐํ™”
        while cards[cur] - 1 != i:  # ๋‹ค์Œ ์ƒ์ž๋กœ ์ด๋™ํ•˜๋ฉฐ ๊ทธ๋ฃน ํ˜•์„ฑ
            cur = cards[cur] - 1  # ์นด๋“œ์— ์ ํžŒ ์ˆซ์ž๋ฅผ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋™
            visited[cur] = True  # ํ•ด๋‹น ์ƒ์ž๋ฅผ ์—ด์—ˆ๋‹ค๊ณ  ํ‘œ์‹œ
            linked += 1  # ๊ทธ๋ฃน ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ด
        lst.append(linked)  # ๊ทธ๋ฃน ํฌ๊ธฐ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
        
    if len(lst) < 2:  # ๊ทธ๋ฃน์ด 2๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด ์ ์ˆ˜๋Š” 0
        answer = 0
    else:
        lst.sort(reverse=True)  # ๊ทธ๋ฃน ํฌ๊ธฐ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
        answer = lst[0] * lst[1]  # ๊ฐ€์žฅ ํฐ ๋‘ ๊ทธ๋ฃน์˜ ํฌ๊ธฐ๋ฅผ ๊ณฑํ•จ

    return answer  # ์ตœ์ข… ์ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
profile
๊ณต๋ถ€ ๋…ธํŠธ ๊ฒธ ๊ธฐ๋ก์žฅ

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด