Development Artist

[COS Pro 1급, Python] 1차 5번 : 소용돌이 수 본문

Algorithm/COS

[COS Pro 1급, Python] 1차 5번 : 소용돌이 수

JMcunst 2022. 2. 24. 21:28
728x90
반응형

문제 유형

 코딩

난이도

 hard

Note 

 1. 핵심 코드 : start, end = ori + 1, ori + 2 * (n - i) - 1ori = end. nxn에서 왼쪽 위를 start로 하면, 오른쪽 아래를 end로 잡고, 마찬가지로 오른쪽 아래를 start로 하면, 왼쪽 위를 end로 잡는다.

 1.1. n = 3,

    i = 0 일때 start : 1, end : 5

    i = 1 일때 start : 6, end : 8

    i = 2 일때 start : 9, end : 9

핵심코드를 떠올릴 수 있어야 한다. 즉, 안되면 암기...

 

Code

def solution(n):
    answer = 0
    ori = 0
    for i in range(n):
        start, end = ori + 1, ori + 2 * (n - i) - 1  # hit
        print('i::', i, 'ori::', ori, 'start::', start, 'end::', end)
        if i % 2 == 0:
            if end < n ** 2: 
                answer = answer + start + end
            elif start == end: 
                answer = answer + start
        ori = end
    return answer

n1 = 4
ret1 = solution(n1)

print("solution 함수의 반환 값은", ret1, "입니다.")
    
n2 = 2
ret2 = solution(n2)

print("solution 함수의 반환 값은", ret2, "입니다.")

 

※ 가끔 코드 중 print(~)가 있습니다. 정리 못한 점 죄송합니다.

728x90
반응형
Comments