2024.04.11 (목) 오늘 할 일 String 알고리즘 투포인터 같은 단위 내에서 시간복잡도 감소 (3N → 2N) 투포인터 시간 복잡도를 줄인다. 양쪽 데이터를 봐야할 때 word = input('단어를 입력하세요: ') left = 0 # 시작 인덱스 right = len(word)-1 # 마지막 인덱스 is_palindrome = True while left < right: # 왼쪽과 오른쪽이 유지될때까지 돌아라! if word[left] == word[right]: # 같은 경우라면 아직은 회문 조건을 만족함 left += 1 # 왼쪽 포인터를 한칸 오른쪽으로 증가시키고 right -= 1 # 오른쪽 포인터를 한 칸 왼쪽으로 감소 continue else: # 다른 경우라면 그 즉시 안된다고..
2024.04.09 (화) 정렬 목표 : 안정 정렬이 무엇인지! 버블 정렬 (안정 정렬) # 버블 정렬 코드 arr = [2, 4, 1, 3] # 정렬하고자 하는 리스트의 길이가 4니까? for i in range(len(arr)-1, 0, -1): # 총 3회 시행, for j in range(i): # 각 시행 횟수 안에서, 3 2 1 번씩 비교 할것 if arr[j] > arr[j+1]: # 내가 오른쪽 녀석보다 크다면? arr[j], arr[j+1] = arr[j+1], arr[j] # 자리를 바꾼다! print(arr) ''' " > " 때문에 안정 정렬이 된다!! ''' 2. 카운팅 정렬 (안정 정렬) 어렵… 안정 정렬 보장법 기교 S 배열 (누적합 배열) step 1. 개수를 센다. step..
2024.04.05 (금) 오늘 배울 것 함수, 스코프 재귀함수 log N 시간 복잡도 이분 탐색기 함수, 스코프 이름 공간 a = 3 def func(): a = 4 print(a) func() print(a) #4 #3 ''' !!!!순서 중요!!!! Local : ex. a = 4 의 a Enclosed (함수 안의 함수) Global : ex. a = 3 의 a / func Built-in : print, sum... ''' a = 3 def func(): global a a = 4 print(a) func() print(a) #4 #4 스코프 → 함수 기준 a = [1, 2, 3] print(id(a)) def func(lst): print(id(lst)) lst.append(4) print(l..

2024.04.04 (목) 슬라이싱 하나씩 보는 것을 순차검색 shallow copy (얕은 복사) 기능 이차원 리스트 복사하는 것 주의!! 제일 밖에 껍데기만 갈아끼우고 안쪽 리스트는 계속 연동 #해결 방법 #첫 번째 방법 a = [[1, 2], [3, 4]] b = [] for i in a: b.append(i[:]) print(b) #두 번째 방법 -> 자주 사용한다. a = [[1, 2], [3, 4]] b = [i[:] for i in a] print(b) #세 번째 방법 -> 삼차원 이상이면 deepcopy 사용이 좋다. import copy a = [[1, 2], [3, 4]] b = [i[:] for i in a] c = copy.deepcopy(a) print(b) 슬라이싱 삽입 → 따로..
2024.04.02 (화) 다익스트라 → 벨만 포드 알고리즘 이런이런 상황이거든? 자료구조! 그걸 토대로 풀어내는게 알고리즘! 리팩토링? 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 알고리즘 공부 방법론 실전형 : 일단 문제를 풀면서 내용을 공부 틀려도 답지보고 풀고 비슷한 유형을 더 풀어본다. 탐구형 : 우선 이론을 공부. 이후 이론에 맞는 문제를 풀되, 안 풀리는 문제를 끝까지 고민해보며 최대한 생각을 많이 해본다. 실전형으로 하자!!!!!!!!!! BOJ 실버 ~ 골드, 프로그래머스 LV 2~3 대략 200 ~ 300 Q 정도면 1회독 결국 중요한 것은 얼마나 꾸준히 ..
오늘 할 일 아키텍처 구현 프론트엔드, 백엔드 구현 특이사항 프로젝트 산출물 링크 공유할 것 오늘도 역시 회의가 주를 이뤘다. ERD 설계를 했는데 어제 공부하고 와서 어느정도 이해는 되긴 했다. 그러나 manyToOne에 관한 이슈가 있어서 하루정도 미루기로 했다. 공부 진짜 빡세게 해야할 것 같다. 잡코디분이랑 상담도 했는데,백엔드이든 SA이든 좀 막막한 느낌이 든다. 지금까지 프로젝트한 것 중에 두 개 다 포폴에 쓸만한 것이 없어서... 너무 급하게 생각하는 거인가 싶기도 하고 지금까지 열심히 한 것 같은데 아무것도 해놓은게 없어서 허무하고 내 자신에게 화도 나는 것 같고 그래도 어쩌겠는가...다시 열심히 하는 수밖에... 회의 내용 배포 관련하여 도커를 사용해서 하자 aws 미디어 서비스 S3에 ..
SeSAc 도봉 캠퍼스 AWS 부트캠프의 마지막 프로젝트. 우리 조의 주제는 LMS(학습 관리 시스템)!! 예를 들면... 콜로소 / 클래스 101 / 유데미 등이 있다. 오늘 회의에서 나온 이야기는... 협업 툴 선정 역할 배분 1번의 연장선으로 Jira에 대해서 사용법과 규칙 등 무엇이 있는지 알아보는 것이 조 내에서 숙제이고 2번은 역할 배분을 하였다. 조원 한명이 오지 않아 내일 다시 자세히 정해야겠다. 또한, 웹 사이트 분석을 하는 것도 숙제였다. 밑에는 나의 숙제다..늦게 끝나서 제대로 하지 못했는데 ㅠㅠ 그래도 열심히 참여해서 많이 배워보자!!! # Jira ## **용어** Ex. 이슈 타입, 이슈 상태, 프로젝트, 업무 흐름도, 필드 등 - 프로젝트(Project) : 이슈들의 집합으로 ..