Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- DFS와BFS
- Algorithm
- 코딩테스트
- Flutter
- 동적계획법과최단거리역추적
- Python
- AndroidStudio
- django
- android
- 알고리즘
- Vue
- codingtest
- DFS
- C++
- 안드로이드
- 코드품앗이
- cos pro
- 코테
- BAEKJOON
- 동적계획법
- DART
- cos
- vuejs
- cos pro 1급
- issue
- 안드로이드스튜디오
- 개발
- 백준
- 파이썬
- 분할정복
Archives
- Today
- Total
Development Artist
[COS Pro 1급, Python] 1차 5번 : 소용돌이 수 본문
728x90
반응형
문제 유형
코딩
난이도
hard
Note
1. 핵심 코드 : start, end = ori + 1, ori + 2 * (n - i) - 1 와 ori = 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
반응형
'Algorithm > COS' 카테고리의 다른 글
[COS Pro 1급, Python] 1차 7번 : 병합 and 정렬 (0) | 2022.02.24 |
---|---|
[COS Pro 1급, Python] 1차 6번 : 체스의 나이트 (0) | 2022.02.24 |
[COS Pro 1급, Python] 1차 4번 : 타임머신 (0) | 2022.02.24 |
[COS Pro 1급, Python] 1차 3번 : 계산기 by 문자열 (0) | 2022.02.24 |
[COS Pro 1급, Python] 1차 2번 : 해밍 거리 구하기 (0) | 2022.02.24 |
Comments