Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • sort
  • Python
  • Union
  • ์ฝ”ํ…Œ
  • ํ† ์ต์‹œํ—˜
  • ๊ทธ๋ฆฌ๋””
  • ์ •๋ ฌ
  • ํ† ์ต์ ์ˆ˜
  • mysql
  • ๋ฐฑ์ค€
  • BFS
  • greedy algorithm
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ๊ตฌํ˜„
  • ํ† ์ต๊ณต๋ถ€
  • UNION ALL
  • ํ† ์ต๊ธฐ์ถœ
  • ๋‚ด์žฅํ•จ์ˆ˜
  • ์˜ค๋ธ”์™„
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ํ† ์ตRC
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ํ•ด์ปค์Šคํ† ์ต
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ๋ฆฌ์ŠคํŠธ
  • BaekJoon
  • ํ† ์ต๋…ํ•™
  • ์™„์ „ํƒ์ƒ‰

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์—ฌํ–‰๊ฒฝ๋กœ | DFS

2024. 9. 21. 16:38

 

~๋ชฉ์ฐจ~

๋ฌธ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

์ž‘์„ฑ ์ฝ”๋“œ


 

๋ฌธ์ œ

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

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

- ํ‹ฐ์ผ“์€ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉํ–ˆ์Œ์„ ๊ธฐ๋กํ•ด์•ผํ•จ (ํ•˜์ง€๋งŒ, ์ค‘๋ณต์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ)

- ํŠน์ • ๊ณตํ•ญ์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณตํ•ญ์„ ์˜ฌ๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๊ด€๋ฆฌ

- DFS๋กœ ์ˆœํ™˜ํ•˜๋ฉด์„œ ์ •๋‹ต์ด ๋  ์ˆ˜ ์žˆ๋Š” ์ฒซ๋ฒˆ์งธ ๊ฒฝ์šฐ๋ฅผ ๋ฐ˜ํ™˜

 

- ์ฃผ์˜ ์‚ฌํ•ญ

1. ํ‹ฐ์ผ“์€ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋™์ผํ•œ ๊ฒฝ๋กœ์˜ ํ‹ฐ์ผ“์ด 2๊ฐœ ์ด์ƒ์ผ ์ˆ˜ ์žˆ์Œ ( 2๋ฒˆ ํ…Œ์ผ€)

2. ํŠน์ • ๊ณตํ•ญ์—์„œ ๋‹ค๋ฅธ ๊ณตํ•ญ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์—†๋Š”๋ฐ ํ•ด๋‹น ๊ณตํ•ญ์„ ์ €์žฅํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ ( 1๋ฒˆ ํ…Œ์ผ€ )

 

- ์ถ”๊ฐ€ํ•ด ๋ณผ ํ…Œ์ผ€

์ž…๋ ฅ ๊ฒฐ๊ณผ
[["ICN", "BOO"], ["ICN", "COO"], ["COO", "DOO"], ["DOO", "COO"], ["BOO", "DOO"], ["DOO", "BOO"], ["BOO", "ICN"], ["COO", "BOO"]] ["ICN", "BOO", "DOO", "BOO", "ICN", "COO", "DOO", "COO", "BOO"]
[["ICN", "BBB"], ["BBB", "ICN"], ["ICN", "AAA"]] ["ICN", "BBB", "ICN", "AAA"]

 

์ž‘์„ฑ ์ฝ”๋“œ

def solution(tickets):
    route = ['' for _ in range(len(tickets)+1)]
    ticket = {}
    used = {}
    for t1, t2 in tickets:
        ticket[t1] = ticket.get(t1, []) + [t2]
        used[(t1, t2)] = used.get((t1, t2), 0) + 1
    
    for t in ticket:
        ticket[t].sort()
    
    def dfs(count, city):
        route[count] = city
        if count == len(tickets):
            return True
        
        if city in ticket:
            for c in ticket[city]:
                if used[(city, c)] > 0:
                    used[(city, c)] -= 1
                    if dfs(count+1, c):
                        return True
                    used[(city, c)] += 1
        return False
    
    dfs(0, "ICN")
        
    return route

 

 

 

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ข‹์•„์š” ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”๐Ÿ’š

 

 

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™  (0) 2024.06.27
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ•˜๋…ธ์ด์˜ ํƒ‘ | ์žฌ๊ท€ ํ˜ธ์ถœ | ๋ถ„ํ•  ์ •๋ณต  (0) 2023.12.25
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ด„ํ˜ธ ๋ณ€ํ™˜ | DFS  (0) 2023.06.27
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ | DP  (0) 2023.06.26
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋‹ค์Œ ํฐ ์ˆซ์ž  (0) 2023.06.26
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ•˜๋…ธ์ด์˜ ํƒ‘ | ์žฌ๊ท€ ํ˜ธ์ถœ | ๋ถ„ํ•  ์ •๋ณต
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ด„ํ˜ธ ๋ณ€ํ™˜ | DFS
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ | DP
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

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