221005 기초탄탄 스터디(피보나치, 프로그래머스), 천리길 스터디(파이썬 문제, 마크다운 작성법), TIL
221005 기초탄탄 스터디
1. 프로그래머스 콜라츠 추측 문제
1.1 수도 코드 작성해보기
- 0으로 시작하는 변수 설정
- 값이 1이라면, 반환
- 값이 1이 아니라면 -> 짝수라면(%2 == 0)
- 값이 1이 아니라면 -> 홀수라면(%2 == 1)
- else : 500번 반복 때까지 1이 되지 않는다면 -1
1.2 참고 : 피보나치 다이나믹 프로그래밍
재귀함수 : 반복문 없이도 자기 자신을 호출해서 반복할 수 있다는 점
def fibo(n):
if n==1:
return 1
elif n == 2:
return 1
else:
return fibo(n-2)+fibo(n-1)
answer = 0
def solution(num):
global answer
if answer > 500:
return -1
if num==1:
return answer
elif num%2 ==0 :
answer+-1
return solution(num/2)
else:
answer+=1
return solution(num*3+1)
1.3 replace
프로그래머스 핸드폰 가리기 문제 중, replace가 replace(old, new, [count]) 형식인데 이걸 사용해서 풀 수는 없을까? 란 질문.
https://ooyoung.tistory.com/77
221005 천리길 스터디
노션 : Enumerate 공부
- 왜 Enumerate를 쓸까?
- 반복문 사용 시 몇 번째 반복문인지 확인이 필요할 때. 값의 위치(index)를 알아야 할 때.
- 특징
- 인덱스 번호와 값을 tuple형태로 반환 ex) (0,1)(1,2)(2,3)
- 튜플 데이터는 수정이 불가능 하다.
- 리스트가 필요하다. for 변수 in enumerate(리스트): print(변수)
- enumerate(list, start=1) 이런 식으로 설정을 하면, 0번이 아닌 1번 인덱스부터 시작하게 설정이 가능하다.
- 0102번 실습 파일
for i, w in enumerate(weekday):
print(i, w)
→ 출력 값은
0 월
1 화
2 수
3 목
과 같은 형식으로 출력 된다.
- 0102번 실습 파일 phone dict문제
range(len(phone.split())을 enumerate()로 바꿔서 생각해보기
phone_dict = {}
for phone in phone.split(">"):
if len(phone.split()) > 1:
key = phone.split()[0].strip()
value = phone.split()[1].strip()
phone_dict[key] = value
phone_dict
추가로 0102번 실습 파일을 복습하다 보니 컴프리헨션 스타일을 두 번 보게 되었고, 최근 수업에서도 컴프리헨션이 자주 사용되고 있는데, 다음주 전에 미리 공부해서 정리를 해보고 싶다.
번외) 컴프리헨션
- phone dict 간략하게 : {ps.split()[0] : ps.split()[1] for ps in phone.split(">")[1: ]}
- weekday를 간략하게: [w for w in "월화수목금토일"] #list comprehension.
weekday = list()
for w in "월화수목금토일":
weekday.append(w)
weekday
def solution(phone_number):
return phone_number.replace(phone_number[:-4],"*"*len(phone_number[:-4]))
천리길 스터디 기타 팁
- esc 방향키 : 코드 셀 이동
- Latex : \안에 수학식 사용\
http://detexify.kirelabs.org/classify.html - 마크다운 표
||:---| 왼쪽정렬 ---: 오른쪽정렬 :---: 중앙정렬 - 마크다운 그림
[png](/test.png)
src로 가져오면 이미지 사이즈 줄일 수 있다.
221005 TIL
- 사실(Fact) : map으로 함수 일괄 적용, merge, concat으로 데이터 프레임을 합치는 것을 배웠다. matplotlib, pandas, plotly API로 다양하게 시각화해보았다.
- 느낌(Feeling) : 오늘껀 어떻게 복습을 하면 좋을까. 과제를 내주셨으니 과제하면서 복습봐야겠다.
- 교훈(Finding) : 멘탈관리! Positive! 비교 No!
오늘은 TIL 명예의 전당에 올라갔다!
수도 코드가 pseudo code라니..
아나콘다 프롬프트 관리자 모드로 들어가서 설치하는거 또 까먹었다.
!pip에서 !빼고 실행해야 설치 시작된다.
내 컴퓨터 많이 느리군..
스터디를 두 개나 하니까,, 복습을 못하고,, 근데 스터디는 필요하고,,
뭐가 더 나은 선택일지 모르겠다.
댓글