deo2kim
λ§žμ™œν‹€
deo2kim
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • 개발
    • Infra

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

λ°˜μ‘ν˜•
hELLO Β· Designed By μ •μƒμš°.
deo2kim

λ§žμ™œν‹€

[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - λΉ›μ˜ 경둜 사이클(μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ3)
Algorithm Problem/Python

[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - λΉ›μ˜ 경둜 사이클(μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ3)

2022. 2. 6. 21:38
λ°˜μ‘ν˜•

 

πŸ€”λ¬Έμ œ ν•΄κ²°

πŸ’¨ λ¬Έμ œμ—μ„œ μ‹œν‚€λŠ”λŒ€λ‘œ κ·ΈλŒ€λ‘œ ν’€μ—ˆλ‹€. (κ΅¬ν˜„)

 

πŸ’« visited λΌλŠ” 3차원 배열을 λ§Œλ“ λ‹€. 제일 μ•ˆμͺ½μ˜ μ›μ†Œμ—λŠ” 'U','D','R','L' 이 λ“€μ–΄κ°ˆ 수 μžˆλŠ”λ° ν•΄λ‹Ή μœ„μΉ˜(i, j) μ—μ„œ μ΄λ™ν•œ λ°©ν–₯을 λ‹΄κ³  μžˆλ‹€. 싸이클이 λ‹€λ₯΄λ©΄ μ ˆλŒ€λ‘œ μ΄λ™κ²½λ‘œκ°€ ν•˜λ‚˜λΌλ„ λ˜‘κ°™μ€κ²Œ λ‚˜μ˜¬ 수 μ—†κΈ° λ•Œλ¬Έμ—. 이동할 λ•Œ UDRL 이 μžˆλŠ”μ§€ 확인을 ν•˜κ³  μ΄λ™ν•œλ‹€.

 

πŸ’»μ†ŒμŠ€ μ½”λ“œ

def solution(grid):
    answer = []
    N, M = len(grid), len(grid[0])
    visited = [[set() for _ in range(M)] for _ in range(N)]

    # U, D, L, R
    for i in range(N):
        for j in range(M):
            for k in 'UDLR':
                cnt = 0
                while True:
                    if k in visited[i][j]:  # 이미 μ΄λ™ν–ˆλ˜ 적이 μžˆλŠ”μ§€ 확인
                        break
                    visited[i][j].add(k)  # μ—†λ‹€λ©΄ 싸이클 μ‹œμž‘
                    cnt += 1
                    
                    # 이동
                    if k == 'U':
                        i -= 1
                        if i < 0:
                            i = N - 1
                    elif k == 'D':
                        i += 1
                        if i == N:
                            i = 0
                    elif k == 'L':
                        j -= 1
                        if j < 0:
                            j = M - 1
                    elif k == 'R':
                        j += 1
                        if j == M:
                            j = 0
                    
                    # λ‹€μŒ λ°©ν–₯ 체크
                    if grid[i][j] == 'L':
                        if k == 'U':
                            k = 'L'
                        elif k == 'D':
                            k = 'R'
                        elif k == 'L':
                            k = 'D'
                        elif k == 'R':
                            k = 'U'
                    elif grid[i][j] == 'R':
                        if k == 'U':
                            k = 'R'
                        elif k == 'D':
                            k = 'L'
                        elif k == 'L':
                            k = 'U'
                        elif k == 'R':
                            k = 'D'
                    
                if cnt > 0:
                    answer.append(cnt)

    return sorted(answer)

 

πŸ“•λ¬Έμ œ 확인

좜처: ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

링크: λΉ›μ˜ 경둜 싸이클

λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Algorithm Problem > Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - μŠ€νƒ€ μˆ˜μ—΄(μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ1)  (0) 2022.02.09
[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ꡐ점에 별 λ§Œλ“€κΈ°(μœ„ν΄λ¦¬ μ±Œλ¦°μ§€)  (0) 2022.02.08
[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - n^2 λ°°μ—΄ 자λ₯΄κΈ°(μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ3)  (0) 2022.02.05
[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ν”Όλ‘œλ„(μœ„ν΄λ¦¬μ±Œλ¦°μ§€)  (0) 2022.02.04
[python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - μ‹ κ³  κ²°κ³Ό λ°›κΈ°(2022 KAKAO BLIND RECRUITMENT)  (0) 2022.02.03
    'Algorithm Problem/Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - μŠ€νƒ€ μˆ˜μ—΄(μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ1)
    • [python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ꡐ점에 별 λ§Œλ“€κΈ°(μœ„ν΄λ¦¬ μ±Œλ¦°μ§€)
    • [python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - n^2 λ°°μ—΄ 자λ₯΄κΈ°(μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ3)
    • [python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ν”Όλ‘œλ„(μœ„ν΄λ¦¬μ±Œλ¦°μ§€)
    deo2kim
    deo2kim
    μ½”λ”© κΈ°λ‘ν•˜κΈ°

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”