나의 개발일지

[프로그래머스] Lv.2 삼각 달팽이 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.2 삼각 달팽이 [Python, 파이썬]

YoonJuHan 2023. 10. 12. 20:18

 

def solution(n):
    answer = [[0] * n for _ in range(n)]
    
    x, y = -1, 0    # 시작 위치
    i = 1           # 들어갈 값
    if n == 1: return [1]

    for _ in range(n//2):
        while True: # 밑으로
            x += 1
            if x >= n or answer[x][y] != 0:
                x -= 1
                break
            answer[x][y] = i
            i += 1
            
        while True: # 오른쪽으로
            y += 1
            if y >= n or answer[x][y] != 0:
                y -= 1
                break
            answer[x][y] = i
            i += 1
            
        while True: # 위로
            x -= 1
            y -= 1
            if x < 0 or y < 0 or answer[x][y] != 0:
                x += 1
                y += 1
                break
            answer[x][y] = i
            i += 1
            
    result = []
    
    for i in answer:
        for j in i:
            if j != 0:
                result.append(j)
    
    return result
Comments