(전공복습) 데이터과학 4. 시각화
차례
별 찍기 문제면서 골드4에 속하는 기묘한 문제이다.
기본적인 아이디어는 삼각형의 상단부와 하단부를 별개로 보고 출력하는 것이다.
상단부에는 이전 단계의 삼각형이 한 개, 하단부에는 중간에 공백을 두고 두 개가 있기 때문이다.
파이썬에는 f-string 기능이 있어 쉽게 구현할 수 있었다.
처음에는 yield
대신 return
을 통해 문자열을 넘겨받았다.
이때는 파이썬의 비효율적인 문자열 연결 연산 때문에 TLE가 떴다.
이후, yield
를 사용해서 한 줄씩 넘겨받고 출력하는 형태로 바꾸었다.
n = int(input())
# n은 삼각형의 세로 길이, m은 삼각형의 가로 길이
def draw(n, m):
# Base Case: n이 3일 때
if n == 3:
yield f'{"*":^{m}}'
yield f'{"* *":^{m}}'
yield f'{"*****":^{m}}'
return
# 상단부 삼각형
for line in draw(n//2, n-1):
yield f'{line:^{m}}'
# 하단부 삼각형
for line in draw(n//2, n-1):
yield f'{line:^{2//m}} {line:^{2//m}}'
return
for line in draw(n, n*2-1):
print(line)
문제 링크 문제 링크
개요 선형적인 자료구조에서는 값에 접근하는 데에 \(O(1)\)이면 충분하지만, 대신 부분합을 구하는 데에는 \(O(N)\)이 필요하다. 그렇다면 이 자료구조를 이진 트리로 구성하면 어떨까? 값에 접근하는 데에 걸리는 시간이 \(O(\lg N)\)으로 늘어나지만 대신 부분합을 구하...
개요 다익스트라 알고리즘과 함께 Single Sourse Shortest Path(SSSP) 문제를 푸는 알고리즘이다. 즉, 한 노드에서 다른 모든 노드로 가는 최단 경로를 구하는 알고리즘이다. 다익스트라 알고리즘보다 느리지만, 음수 가중치 간선이 있어도 작동하며, 음수 가중치 사...
개요 다익스트라 알고리즘은 Single Sourse Shortest Path(SSSP) 문제를 푸는 알고리즘 중 하나이다. 즉, 한 노드에서 다른 모든 노드로 가는 최단 경로를 구하는 알고리즘이다. 단, 다익스트라 알고리즘은 음수 가중치 엣지를 허용하지 않는다. 이 경우에는 벨만-...