반응형

전체 글 721

운동일지 5/28 토요일 - 등, 이두

어제 깜빡해서 오늘 쓴다. 철봉 매달리기 25초 4세트 덤벨컬 11kg 10회 4세트 원래 덤벨컬은 실패 안했는데 이번엔 앞서서 철봉에 매달려서 그런가 실패했다. 오른팔은 성공했는데 왼팔만 3, 4세트 실패한거 보면 매달릴 때 왼쪽으로 좀 치우친 거 아닌가 생각된다. 철봉 매달리기는 정확한 초는 모르는데 대략 25초정도 매달렸을 거다. 몸무게가 95kg쯤 되다보니 몸을 못올리겠다. 그래도 예전에 한창 헬스할 땐 절반정돈 들어올렸는데 지금은 아예 안된다.

인간관계, 돈에 관하여

오랜만에 외삼촌을 만나서 점심을 먹을 때 이 얘기가 나왔다. "인간관계에는 노력이 필요하다." 만나는건 우연일지라도 만들고 유지하는건 노력이 필요하다. 노력이라는게 별 거 아니다. 많이 얘기하고, 자주 같이 다니면 된다. 예를 들면 밥을 같이 먹는다던가 등등. 생각해보면 학창시절에는 같은 반에서 자주 보다보니 점점 친해지는 경우가 많았는데, 대학생이 되고나니 내가 먼저 다가가거나 하는게 아니면 친해지는 경우가 별로 없었다. 누군가 나와 친해지려고 다가오는걸 기다리는 것보다는 내가 다가가서 노력하는게 인간관계를 넓히는 현실적인 방법이라 생각된다. 삼촌은 동호회나 동아리를 들어가는게 좋다고 한다. 한 동호회에 들어가면 회원의 10%정도는 친해지는것 같다고 하셨다. 5%는 절친, 5%는 절친은 아니라도 꽤 친..

[운동일지] 5/27 금요일 - 가슴, 삼두 운동

1. 팔굽혀펴기 6회 4세트. 마지막세트 실패해서 무릎대고 6개. 2. 오버핸드 익스텐션 11kg 10회 4세트. 마지막세트 8개에서 실패. 몸무게가 95kg이라 너무 힘든거같다. 운동도 오래쉬어서 그런가 삼두가 너무 약해졌고. 술, 음료박스 옮길때 이두는 자주 사용해서 근력이 어느정도 유지된게 다행이다. 유지되긴 했어도 말랑하긴 마찬가지지만. 다시 열심히 하자.

모두의 알고리즘 문제11. 퀵 정렬 연습 문제

11-1 거품정렬 과정을 알고리즘으로 적어보라 def bubble_sort(a): n=len(a) while 1: change=False for i in range(0, n-1): if a[i] > a[i+1]: a[i], a[i+1] = a[i+1], a[i] change=True if change==False: return d=[2, 4, 5, 1, 3, 9, 11, 22, 7, 2] bubble_sort(d) print(d) 결과: [1, 2, 2, 3, 4, 5, 7, 9, 11, 22] 처음엔 재귀함수를 써야하나 했는데 생각해보니 반복문으로 충분하겠더라. 첫 시도에선 while문 탈출 조건을 True/False가 아니라 변수 하나에 0을 저장하고 앞뒤 값이 바뀌지 않을때마다 변수에 1을 더해서 ..

모두의 알고리즘 문제 11. 퀵 정렬

퀵 정렬은 '피벗(pivot)'이라는 기준을 하나 선정하고 피벗보다 큰 리스트, 피벗보다 작은 리스트로 리스트를 나누어 정렬하고 다시 합하는 정렬 방식이다. 쉽게 설명한 퀵 정렬 알고리즘은 아래와 같다 def quick_sort(a): n = len(a) if n > [1, 2, 3, 4, 5] 가 된다. 그리고 이번 정렬에서도 재귀함수가 쓰였는데 동작 방식은 다음과 같다. 1. 리스트a = [6, 8, 3, 9, 10, 1, 2, 4, 7, 5]일 때 피벗은 리스트의 마지막 원소로 정한다고 가정한다. 2. 리스트 a는 피벗=5를 기준으로 피벗보다 크고 작은 리스트 두개로 나뉜다. [3, 1, 2, 4], 5, [6, 8, 9, 10, 7] 3. [3, 1, 2, 4]는 마지막 원소를 피벗으로 삼는다. ..

모두의 알고리즘 문제 10. 병합 정렬 연습 문제

10-1 교재의 병합정렬은 오름차순인데 이를 내림차순으로 바꾸려면 어디를 바꿔야할까? def merge_sort(a): #리스트a를 입력으로 받음 n=len(a) if n g2[i2]: # g1의 원소가 더 크면 a[ia] = g1[i1] #리스트a에 g1의 원소를 덮어씌움 i1 += 1 #g1 원소번호 1 증가 ia += 1 #리스트a 원소번호 1 증가 else: a[ia] = g2[i2] #리스트a에 g2의 원소를 덮어씌움 i2 += 1 #g2원소번호 1 증가 ia += 1 #리스트a 원소번호 1 증가 # 두 리스트 중 아직 자료가 남은 리스트의 자료를 결과에 추가 while i1 < len(g1): a[ia] = g1[i1] i1 += 1 ia += 1 while i2 < len(g2): a[ia]..

모두의 알고리즘 문제 10. 병합 정렬

병합정렬의 과정은 다음과 같다. 1. 리스트a를 입력으로 받는다. 2. 리스트를 중간을 기준으로 두개로 나누고 각각을 정렬한다. 3. 각 리스트의 첫번째 값을 비교하여 더 작거나, 더 큰 값을 최종 결과 리스트에 집어넣는다. 4. 3번 과정을 두 리스트 중 하나가 모두 빌 때까지 반복한다. 5. 아직 값이 남아있는 리스트의 값들을 전부 최종 결과 리스트에 차례대로 집어 넣는다. 6. 최종 결과 리스트에 정렬된 값이 전부 들어갔으니 이를 반환한다. 교재에서 쉽게 설명한 병합 알고리즘이다. def merge_sort(a): #리스트a를 입력으로 받음 n=len(a) if n

모두의 알고리즘 문제 09. 삽입 정렬 연습 문제

9-1 일반적인 삽입정렬 알고리즘을 사용해서 리스트[2, 4, 5, 1, 3]을 정렬하는 과정 서술 문제09 삽입정렬 이론공부 포스팅에 자세히 적어놨음. 9-2 정렬 알고리즘을 오름차순에서 내림차순으로 바꿔라. def insert_sort(a): n=len(a) for i in range(1, n): # 1부터 n-1까지 key=a[i] #i번 위치에 있는 값을 key에 저장 j=i-1 #j를 i 바로 왼쪽 위치에 저장 #리스트의 j번 위치에 있는 값과 key를 비교해 key가 삽입될 적절한 위치를 찾음 while j>=0 and a[j] < key: a[j+1]= a[j] #삽입할 공간이 생기도록 값을 오른쪽으로 한칸 이동 j-=1 a[j+1] = key #찾은 삽입 위치에 key를 저장 d = [2,..

모두의 알고리즘 문제 09. 삽입 정렬

def find_ins_idx(r, v): #리스트r, 삽입값v. v가 들어갈 위치를 돌려주는 함수 #이미 정렬된 리스트r의 자료를 앞에서부터 차례로 확인하며 for i in range(0, len(r)): if v < r[i]: #삽입값v가 r[i]보다 작으면 i를 반환해서 r[i]보다 앞에 v를 삽입. #r[i]앞에 v를 놓아야 정렬 순서가 유지된다 return i # i자리에 값을 삽입하면 기존의 i자리의 값은 한자리 뒤로 밀려남. #적절한 위치 못찾은거면 모든 자료보다 삽입값이 큰거니까 제일 뒤에 삽입 return len(r) def ins_sort(a): result = [] #새 리스트 만들기. 결과 저장 while a: #리스트 a에 값이 남아있을 때까지 반복 value = a.pop(0) ..

효율적으로 공부하는 방법

적게 공부하고 더 많이 배우는 방법 - YouTube 한 심리학자의 강연을 요약한 영상인데 내용을 인상깊게 봐서 숙지하기 위해 블로그에 따로 정리해둔다. 1. 시간 쪼개기 공부를 효율적으로 하기 위한 첫 번째 방법은 시간을 쪼개는 것이다. 대학생들의 평균적으로 25~30분정도 집중을 유지 가능하고 그 이상부터는 집중이 흐트러진다. 공부의 효율은 시작 후 30분 정도에 급격히 집중력이 떨어지고 그 상태로 계속 공부하면 효율이 바닥을 친다. 심리학에서는 보상을 받으면 그걸 더 하게 되고, 처벌을 받으면 그걸 더 안하게 된다는 것이 잘 알려져 있다. 만약 몇시간씩 공부하게 된다면 기분 좋은 공부는 30분 밖에 못하고 그 이후부터는 고통 속에서, 공부를 저주하면서 보내게 된다. 아 수학 진짜 재미없다, 영어 진..

반응형