ALGORITHM/Kakao

[Python] 삼각달팽이

김쿸후 2021. 10. 8. 21:07

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/68645

 

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

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

 

2. 풀이

규칙을 찾는게 중요하다! 

최대한 뭐가 어디서 반복되는지를 잘 확인하자

 

** insert(자리, 넣는값) **

 

3. 코드

def solution(n):
    answer = []
    answer_list = []
    
    for i in range(n):
        element = []
        answer_list.append(element)
    
    size = n-1
    index = 1
    start = 0
    end = 0
    while (size > 0):
        if index < int(((n + 1) * n)/2): 
            for i in range(size):
                answer_list[start + i].insert(int(start/2),index)
                index = index +1
            for i in range(size):
                answer_list[n-end-1].insert(int(start/2)+i,index)
                index = index +1
            for i in range(size):
                answer_list[n-1 - i -end].insert(int(len(answer_list[n -1- i -end])-(end)),index)
                index = index + 
        size = size -3
        start = start +2
        end= end +1
        
    if index == int(((n + 1) * n)/2): 
        answer_list[start].insert(int(start/2),index)
        
    for i in answer_list:
        for j in i:
            answer.append(j)
            
            
    return answer

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 이진 변환 반복하기  (0) 2021.10.09
[Python] 메뉴 리뉴얼  (0) 2021.10.08
[Python] 거리두기 확인하기  (0) 2021.10.05
[Python] 문자열 압축  (0) 2021.10.05
[Python] 괄호 회전하기  (0) 2021.10.05