전체 글
-
[알고리즘] 기본 정렬 알고리즘[버블 정렬, 삽입 정렬, 선택 정렬] - ItisFutureAlgorithm 2022. 9. 14. 22:13
버블 정렬 ---- for문을 한 번 돌면 마지막에는 무조건 큰 숫자가 담긴다 ---- 매번 처음 인덱스 부터 시작 ---- 기준 인덱스와 바로 뒤 인덱스를 비교하여 앞이 크면 자리를 바꾼다. def bubblesort(ary): for idx1 in range(len(ary) - 1): # 길이보다 하나 작게 반복할거야 for idx2 in range(len(ary) - idx1 - 1): # 매번 처음부터 시작, 끝은 길이에 반복 횟수와 1을 빼줌 -> 왜 1을 빼줘? if ary[idx2] > ary[idx2+1]: # 기준보다 하나 큰 인덱스를 사용하기 때문에 ary[idx2], ary[idx2+1] = ary[idx2+1], ary[idx2] return ary 삽입 정렬 - 기준과 기준 다음의..
-
[TIL] 내일 배움 캠프 17일차 9/14 - ItisFuture내일배움캠프/TIL 2022. 9. 14. 20:53
오늘 한 것 -알고리즘 기본 정렬 강의 학습 -기본 정렬 정리(버블 정렬, 삽입 정렬, 선택 정렬) -캠프 과제 -머신러닝을 공부하기 위한 세팅 -아나콘다 가상환경 세팅과 주피터 노트북에 새로운 커널 생성하기 -간단한 알고리즘 https://it-is-future.tistory.com/68 [알고리즘] 기본 정렬 알고리즘[버블 정렬, 삽입 정렬, 선택 정렬] - ItisFuture 버블 정렬 ---- for문을 한 번 돌면 마지막에는 무조건 큰 숫자가 담긴다 ---- 매번 처음 인덱스 부터 시작 ---- 기준 인덱스와 바로 뒤 인덱스를 비교하여 앞이 크면 자리를 바꾼다. def bubblesort(ary): f it-is-future.tistory.com 회고 기본 정렬 알고리즘을 나의 언어로 정리하고 ..
-
[백준 1158 Python] 요세푸스 문제 파이썬 - ItisFutureAlgorithm/Baekjoon 2022. 9. 13. 20:13
m,n=map(int,input().split()) li = list(range(1,m+1)) step = n - 1 del_idx = step res = [] while len(li)>0: length = len(li) if del_idx > length - 1: del_idx %= length res.append(li.pop(del_idx)) del_idx += step print('') 문제 아이디어 1. 제거할 인덱스는 리스트의 길이 값으로 나눈 나머지 값 2. 다음의 빼야할 인덱스(del_idx)는 하나가 제거 된 리스트가 기준이기 때문에 step은 하나 작은 값이 된다.
-
[알고리즘] 더하거나 빼거나 - ItisFutureAlgorithm 2022. 9. 13. 20:06
Q. 음이 아닌 정수들로 이루어진 배열이 있다. 이 수를 적절히 더하거나 빼서 특정한 숫자를 만들려고 한다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들기 위해서는 다음 다섯 방법을 쓸 수 있다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 , 타겟 넘버 target_number이 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 반환하시오. - 리스트의 순서를 바꾸는 것이 아닌 순차적으로 더하거나 빼거나 cnt = 0 def plus_or_minus(num_list, target_num, start_idx, now_total): global cnt ..
-
[자료구조/알고리즘] 링크드 리스트 자료구조 - ItisFutureAlgorithm/theory 2022. 9. 13. 19:38
링크드 리스트는 노드와 노드를 이어 제한 없이 생성 가능하다는 장점이 있다. 단점은? 즉각적인 인덱싱의 어려움, 메모리를 많이 먹는다. 링크드 리스트의 시작 마지막 노드에 다음 노드를 추가해주는 것을 기억하면 쉽다. ( 기차 놀이 ) class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self, data): self.head = Node(data) def add(self, data): if self.head == '': self.head = Node(data) else: node = self.head while node.next: node = node.next node.ne..
-
[TIL] 내일 배움 캠프 16일차 9/13 - ItisFuture내일배움캠프/TIL 2022. 9. 13. 19:04
오늘 한 것 튜터님 강의 & 클래스 연습 과제 스파르타 알고리즘 강의 - 링크드 리스트 - 이진 탐색 - 재귀 함수 (더하거나 빼거나) 퀵 정렬 복습 요세푸스 문제 (알고리즘) ----------------------------------------------------- https://github.com/KimGyeongMin-KR/sparta-assignment/tree/main/class_practice GitHub - KimGyeongMin-KR/sparta-assignment Contribute to KimGyeongMin-KR/sparta-assignment development by creating an account on GitHub. github.com https://it-is-futur..
-
[TIL] 내일 배움 캠프 15일차 9/12 -ItisFuture내일배움캠프/TIL 2022. 9. 12. 23:18
오늘 한 것 개인 프로젝트 댓글 백엔드, 대댓글 구상 간단한 재귀 알고리즘 회고 오늘 댓글 기능을 구현하는 것을 필수로 잡았지만 깔끔하게 포기했다. 이유는 잠을 제대로 못 잤기 때문인데,, 형에 새벽에 들락날락 하기도 했고 중간에 깨는 중대한 일이 있었다. 그 일은 인스턴스 사랑만 하던 형이 처음으로 찐 사랑으로 첫 여자 친구를 사귄 날이 어제이다. 그래서 몸에 힘이 없던 오늘.. 낮잠을 충분히 잔다면 밤에 잠이 안 와 내일 지장이 갈 것이라, 미뤄왔던 머리를 자르고 유튜브를 좀 봤다..ㅎ 예전에는 계획대로 안되면 스트레스를 받았지만 불안해하지 않고 좋게 생각하니 오히려 더 다음 일이 진행이 잘된다랄까(오늘의 경우 이렇게 된 거 오늘은 맘 편히 쉬자). 그러므로 내일 더 열심히 하겠다 다짐하며 마치겠다...