본문 바로가기
알고리즘-python/Programmers 문제

[프로그래머스/2단계/파이썬(Python3)] 삼각달팽이

by 빅데이터1020 2021. 7. 7.
SMALL

백준 문제 중 벌집을 풀다가 예전에 프로그래머스 월간챌린지에서 본 문제랑 비슷해 보였습니다.

음, 비슷해보이는건 그림 때문이고ㅋㅋ 전혀 다른 문제였습니다.

수열을 이용해서 푸는 게 아니라

배열의 구조를 이용해서 문제에 접근해야 하더군요

 

 

문제 출처

 

코딩테스트 연습 - 삼각 달팽이

5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]

programmers.co.kr

 

풀이 코드

def solution(n):
    box = [[0]*a for a in range(1,n+1)]   # 삼각형 박스 만들기
    x, y = 0, 0   # 초기 좌표
    num=1
    
    for i in range(n):
        for j in range(i, n):
            if i % 3 == 0: # 아래
                x+=1
            elif i % 3 ==1: # 오른쪽
                y+=1
            elif i % 3 ==2: # 위 + 왼쪽
                x-=1
                y-=1
            box[x-1][y] = num # 좌표에 해당하는 박스에 숫자대입
            num+=1  # 다음 차례인 num 설정
            
    return sum(box,[]) # 2차원 리스트를 1차원 리스트로 바꾸기

 

LIST