본문 바로가기
부트캠프(LIKELION AIS7)/TIL

221005 TIL 기초탄탄, 천리길 스터디

by aimaimee 2023. 4. 14.

221005 기초탄탄 스터디(피보나치, 프로그래머스), 천리길 스터디(파이썬 문제, 마크다운 작성법), TIL

221005 기초탄탄 스터디

1. 프로그래머스 콜라츠 추측 문제

1.1 수도 코드 작성해보기

  1. 0으로 시작하는 변수 설정
  2. 값이 1이라면, 반환
  3. 값이 1이 아니라면 -> 짝수라면(%2 == 0)
  4. 값이 1이 아니라면 -> 홀수라면(%2 == 1)
  5. 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 공부

  1. 왜 Enumerate를 쓸까?
  • 반복문 사용 시 몇 번째 반복문인지 확인이 필요할 때. 값의 위치(index)를 알아야 할 때.
  1. 특징
  • 인덱스 번호와 값을 tuple형태로 반환 ex) (0,1)(1,2)(2,3)
  • 튜플 데이터는 수정이 불가능 하다.
  • 리스트가 필요하다. for 변수 in enumerate(리스트): print(변수)
  • enumerate(list, start=1) 이런 식으로 설정을 하면, 0번이 아닌 1번 인덱스부터 시작하게 설정이 가능하다.
  1. 참고
    https://wikidocs.net/16045
    https://blog.naver.com/ivecoding/222795375796
  2. 복습
  • 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]))

천리길 스터디 기타 팁

  1. esc 방향키 : 코드 셀 이동
  2. Latex : \안에 수학식 사용\
    http://detexify.kirelabs.org/classify.html
  3. 마크다운 표
    ||:---| 왼쪽정렬 ---: 오른쪽정렬 :---: 중앙정렬
  4. 마크다운 그림
    [png](/test.png)
    src로 가져오면 이미지 사이즈 줄일 수 있다.

221005 TIL

  • 사실(Fact) : map으로 함수 일괄 적용, merge, concat으로 데이터 프레임을 합치는 것을 배웠다. matplotlib, pandas, plotly API로 다양하게 시각화해보았다.
  • 느낌(Feeling) : 오늘껀 어떻게 복습을 하면 좋을까. 과제를 내주셨으니 과제하면서 복습봐야겠다.
  • 교훈(Finding) : 멘탈관리! Positive! 비교 No!

오늘은 TIL 명예의 전당에 올라갔다!
수도 코드가 pseudo code라니..
아나콘다 프롬프트 관리자 모드로 들어가서 설치하는거 또 까먹었다.
!pip에서 !빼고 실행해야 설치 시작된다.
내 컴퓨터 많이 느리군..
스터디를 두 개나 하니까,, 복습을 못하고,, 근데 스터디는 필요하고,,
뭐가 더 나은 선택일지 모르겠다.

댓글