
🧚
연속된 부분 수열인데 그 합이 k와 같아야 하며 부분 수열 가운데에서도 그 간격이 가장 작고 짧은 것을 구하는 것이 최종 목적이다.
sequence의 길이가 1,000,000 이기 때문에 시간복잡도를 반드시 고려했어야 했고
O(n)을 넘어가서는 안되었었다.
때문에 부분 수열의 합을 계산함에 따라 바로바로 k와 비교했어야 했다.
최종 answer 배열을 출력할 때에도 주의가 필요했는데 1. 같은 인덱스도 first, second에 구분해서 들어갈 것 2. 그 interval이 가장 짧은 것이 들어갈 것
헷갈렸던 부분
📌
def solution(sequence, k):
answer = []
candi = []
for i in range(len(sequence)):
if sequence[i] == k:
candi.append((i, i))
break
tmp = 0
for j in range(i, len(sequence)):
tmp += sequence[j]
if tmp == k:
candi.append((i, j))
break
# print(candi)
interval = 1000
for can in candi:
if can[0] == can[1]:
answer = []
answer.append(can[0])
answer.append(can[1])
return answer
else:
between = can[1] - can[0]
if between <= interval:
if len(answer) > 0 and answer[0] < can[0]:
continue
interval = between
answer = []
answer.append(can[0])
answer.append(can[1])
return answer
def solution(sequence, k):
end = 0; interval = 0; first = 1; second = 1000001
for i in range(len(sequence)):
while end < len(sequence) and interval < k:
interval += sequence[end]
end += 1
if interval == k:
if (end-1) - i < second - first:
first = i
second = end-1
interval -= sequence[i]
return [first, second]
작성 FLOW
내가 전역 환경을 쓰고 있는지 가상환경을 쓰고 있는지 확인하려면
pip list
장고 설치
pip install django==4.2
LTS
안정버전 확인할 것
django-admin startproject <생성할 프로젝트 명>
django-admin startproject . # 현재 디렉터리를 프로젝트 디렉터리로 사용하겠다는 소리
python manage.py runserver
settings.py - 프로젝트의 설정을 관리하는 곳
urls.py - 어떤 요청을 처리할 지 결정하는 곳
__init__.py - 하나의 폴더를 하나의 파이썬 패키지로 인식하도록 하는 파일
wsgi.py - 웹 서버 관련 설정 파일
manage.py - Django 프로젝트 유틸리티 (조종기)
Django의 APP
FLOW
python3 manage.py startapp articles
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'articles',
]
등록한 APP 구성
Django -> 동적 웹페이지 (요청을 받아서 적절한 응답을 만들어주는 주체)

- {{ variable }}
- view의 context로 넘긴 데이터를 접근할 수 있음
- .을 사용하여 변수의 속성값에 접근 가능
- render()의 세 번째 인자인 context에 dict 형태로 넘겨진 데이터 중 key 값이 template에서 사용 가능한 변수가 됨
- 변수에 어떠한 작업을 추가적으로 더해 수정하고 싶을 때 사용
- 반복 또는 논리를 수행하여 제어 흐름을 만들거나 특수한 기능을 수행
- 일부는 시작 태그와 종료 태그가 있음
- 파이썬 코드가 안쪽에 들어가는 것이 아님 -> 그저 문법에 해당하는 것임