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

hyemin·2022년 10월 5일

TIL

목록 보기
9/51

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에서 !빼고 실행해야 설치 시작된다.
내 컴퓨터 많이 느리군..
스터디를 두 개나 하니까,, 복습을 못하고,, 근데 스터디는 필요하고,,
뭐가 더 나은 선택일지 모르겠다.

profile
아직 고쳐나가는 중.

0개의 댓글