[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์˜์–ด ๋๋ง์ž‡๊ธฐ

2025. 7. 17. 17:39ยท๐Ÿ“š ๋ฐฑ์ค€
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/12981

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

๋”๋ณด๊ธฐ

์ด ๋ฌธ์ œ๋Š” n๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด ๋๋ง์ž‡๊ธฐ ๊ฒŒ์ž„์„ ํ•  ๋•Œ, (1)์ž˜๋ชป๋œ ๋‹จ์–ด๋ฅผ ๋งํ•˜๊ฑฐ๋‚˜, ์ด์ „์— ๋งํ•œ (2)์ค‘๋ณต๋œ ๋‹จ์–ด๋ฅผ ๋งํ•˜๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒ๋œ๋‹ค.

์ด ๋•Œ, ์˜ค๋‹ต์„ ๋งํ•œ ์‚ฌ๋žŒ์ด (1)๋ช‡ ๋ฒˆ์งธ ์‚ฌ๋žŒ์ด๋ฉฐ, ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๋Š” ์‹œ์ ์€ (2)๋ช‡ ๋ฒˆ์งธ ํ„ด์— ์ข…๋ฃŒ๋˜๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

 

์ฆ‰, ์ •๋ฆฌํ•˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๋Š” ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

(1)์ž˜๋ชป๋œ ๋‹จ์–ด : ๋งˆ์ง€๋ง‰ ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋‹จ์–ด

(2)์ค‘๋ณต๋œ ๋‹จ์–ด : ์•ž์— ์–ธ๊ธ‰๋œ ๋‹จ์–ด์™€ ๊ฐ™์€ ๋‹จ์–ด

 

๊ทธ๋ฆฌ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๋‘ ๊ฐ€์ง€ ์ด๋‹ค.

(1)๋ช‡ ๋ฒˆ์งธ ์‚ฌ๋žŒ : ์˜ค๋‹ต์„ ๋งํ•œ ์‚ฌ๋žŒ์€ n๋ช… ์ค‘ ๋ช‡ ๋ฒˆ์งธ ์‚ฌ๋žŒ์ธ์ง€

(2)๋ช‡ ๋ฒˆ์งธ ํ„ด์— ์ข…๋ฃŒ : ์ด ๋ช‡ ๋ฒˆ์˜ ํ„ด์ด ์ง€๋‚˜๋Š” ์‹œ์ ์— ์˜ค๋‹ต์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€

 

.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 3๊ฐ€์ง€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

1) duplicate_word(n, words) : ์ค‘๋ณต๋œ ๋‹จ์–ด๋ฅผ ๋งํ–ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜. ๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด, ์ค‘๋ณต๋œ ๋‹จ์–ด์˜ index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

2) not_correct(n, words) : ๋งˆ์ง€๋ง‰ ๋‹จ์–ด์˜ ๋ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋งํ–ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜. ๋งŒ์•ฝ ๋‹ค๋ฅด๋‹ค๋ฉด, ํ•ด๋‹น ๋‹จ์–ด์˜ index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

- ์ง€๊ธˆ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, 1,2 ํ•จ์ˆ˜์—์„œ๋Š” n์„ ๋ฐ›์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

3) find_num_turn(n, idx) : ์˜ค๋‹ต ๋‹จ์–ด์˜ idx ์œ„์น˜์™€ ์ฐธ์—ฌ์ž ์ˆ˜๋ฅผ ๋ฐ›์•„ ์˜ค๋‹ต์„ ๋งํ•œ ์‚ฌ๋žŒ์ด ๋ช‡ ๋ฒˆ์งธ ์‚ฌ๋žŒ์ธ์ง€, ๋ช‡ ๋ฒˆ์งธ ํ„ด์ธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ ๊ฐ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

๋‹ค์Œ์€ ์ด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์ด๋‹ค.

 

 

์ •๋‹ต

def solution(n, words):
    answer = []
    idx = 0
    turn = 0
    p_id = 0
    
    # ๋‘ ํ•จ์ˆ˜์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค -> ๋จผ์ € ๋ฐœ๊ฒฌ๋œ ์˜ค๋‹ต์— ๋งž๊ฒŒ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋ผ์•ผ ํ•˜๋ฏ€๋กœ
    idx = min(duplicate_word(n, words), not_correct(n, words))
    # idx์˜ ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ ํ•จ์ˆ˜ ๋‚ด์—์„œ 101๋กœ ์žก์•˜๊ธฐ ๋•Œ๋ฌธ์— 101์ด ์•„๋‹ˆ๋ฉด ๊ทธ์ „์— ์ข…๋ฃŒ๋˜๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค๋Š” ๊ฒƒ
    if idx != 101 :
        p_id, turn = find_num_turn(n, idx) # ๊ฐ idx์— ๋งž๋Š” ์ฐธ๊ฐ€์ž ๋ฒˆํ˜ธ์™€ ๊ฒŒ์ž„์˜ ํ„ด์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜
        answer = [p_id, turn]
    else :
        answer = [0,0]
    return answer

# ์ค‘๋ณต๋œ ๋‹จ์–ด๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜
def duplicate_word(n, words) :
    said = []
    idx = 101
    for i in range(len(words)) :
        if words[i] in said :
                print(words[i])
                idx = i
                break
        said.append(words[i])
    return idx

# ๋ ๋‹จ์–ด๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋‹จ์–ด๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜
def not_correct(n, words) :
    idx = 101
    for i in range(len(words)-1) :
        if words[i][-1] != words[i+1][0] :
            print(words[i+1])
            idx = i+1
            break
    return idx

# ์˜ค๋‹ต ๋‹จ์–ด idx๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์˜ค๋‹ต์„ ๋งํ•œ ์‚ฌ๋žŒ๊ณผ ๊ฒŒ์ž„์˜ ์ฐจ๋ก€๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜
def find_num_turn(n, idx) :
    p_id = (idx % n)+1
    turn = ((idx) // n)+1
    return p_id, turn

 

 

๋ถ„๋ช… ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ํ†ต์ƒ์ ์ธ ํ’€์ด์™€ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ ์ƒ๊ฐ๋‚˜๋Š”๋Œ€๋กœ ํ’€์–ด๋ณด์•˜๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ“š ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ๋ฆฌ์ŠคํŠธ์—์„œ ์Šฌ๋ผ์ด์‹ฑ ํ›„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์š”์†Œ๋“ค๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2025.08.21
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : [1์ฐจ] ๋น„๋ฐ€์ง€๋„  (0) 2025.07.16
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜  (3) 2025.07.14
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ  (0) 2025.07.13
[DP] ํŒŒ์ด์ฌ์œผ๋กœ Dynamic Programming ์ •๋ณตํ•˜๊ธฐ  (0) 2025.07.13
'๐Ÿ“š ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [python] ๋ฆฌ์ŠคํŠธ์—์„œ ์Šฌ๋ผ์ด์‹ฑ ํ›„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์š”์†Œ๋“ค๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : [1์ฐจ] ๋น„๋ฐ€์ง€๋„
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ
coram22
coram22
  • coram22
    ram2 ๐Ÿš—
    coram22
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (86)
      • ๐Ÿ’ง flutter (22)
      • ๐ŸŽ iOS (18)
      • ๐Ÿฉต CosPro (4)
        • python 2๊ธ‰ (4)
      • ๐Ÿˆ‍โฌ› git (3)
      • ๐Ÿ–ฅ๏ธ react (6)
      • ๐Ÿพ OS (1)
      • ๐Ÿ›œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (6)
      • ๐ŸŒƒ computer vision (6)
      • ๐Ÿ“š ๋ฐฑ์ค€ (11)
      • ๐Ÿฃ My Story (1)
      • ๐Ÿ’ป else (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿˆโ€โฌ› github ๐Ÿˆโ€โฌ›
    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๐Ÿฑ Github ๐Ÿฑ
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    OpenCV
    React
    Git
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    FLUTTER
    SwiftUI
    Computer Vision
    IOS
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    UIKit
    ์ค‘๋„ํœดํ•™
    Python
    ์˜ค๋ธ”์™„
    dart
    Xcode
    ๊ณต์‹๋ฌธ์„œ
    Swift
    ์ •๋‹ต
    ์ปด๋„ค
    2๊ธ‰
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
coram22
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์˜์–ด ๋๋ง์ž‡๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”