본문 바로가기

전체 글

(148)
TIL 050323 skip = 'wbqd' skip_ascii = [ord(i) for i in skip] # [119, 98, 113, 100] / 이렇게 한 줄로 for문을 돌면서 문자열을 리스트로 만들 수 있다. ord(): 알파벳을 아스키코드 숫자로 바꿔준다. a: 97 ~ z: 122 from string import ascii_lowercase atoz = ascii_lowercase print(atoz) # abcdefghijklmnopqrstuvwxyz skip = 'wbqd' temp_ascii = [chr(i) for i in range(97, 123) if chr(i) not in skip] # 한 줄로 for문, if문, list(), chr() # ['a', 'c', 'e', 'f', 'g', 'h..
TIL 050223 순열/조합 문제에서 itertools를 쓸 때 from itertools import combinations처럼 쓸 것만 import하는게 가볍다. 오늘의 재귀 함수 def solution(n, a, b): 함수 빠져나올 조건: return 리턴값 if n solution(20, 3, 1) = 1 + solution(20-3+1, 3, 1) = 1 + solution(18, 3, 1) = 1 + (1 + solution(16, 3, 1)) = 2 + solution(16, 3, 1) = 3 + solution(14, 3, 1) . . . = 8 + soluti..
TIL 050123 print()하면 다음줄로 줄바꿈! for문으로 print() 계속하면 \n 필요 없다. 줄바꿈은 역슬래시!!! "\n".join()으로 줄바꿈 할 수도 있다. for문 중첩해서 쓸 때 잘 생각해보기! j를 고정해놓고 i들을 다 확인한 후 그 다음 j로 넘어가는건지, 그 반대인지... 일단은 moves의 j를 고정해놓고 board의 i를 for문 돌리는 거라면 for j in moves: for i in board: 이렇게 해야한다!!! 회원 탈퇴는 DB에서 회원 정보를 삭제하는게 아니다. 만약을 위해 탈퇴한 회원의 정보를 일정기간 보관 후 삭제. 그러면 탈퇴한 사용자가 곧바로 같은 id로 재가입하는걸 막을 수 있다. 장고에서 기본 제공하는 is_active를 False로 바꿔주거나 뭔가 다른 statu..
WIL 043023 이번주는 코딩테스트 문제풀기를 지금까지 중 제일 열심히 했다. "".join(), map(), 슬라이싱 등 알고는 있었지만 쓸 때마다 헷갈렸던걸 많이 써볼 수 있었다. 예전에 그런게 있다고는 들어봤던 재귀함수를 직접 볼 수 있었다. TIL 042523 django 프로젝트 시작할 때 secret key를 숨기는 걸 해봤다. 다음에는 처음부터 제대로 숨겨서 init commit 할 수 있을 것 같다. TIL 042823 개인과제 중 로그아웃에 대해 엄청 검색해봤다. 세션과 토큰에 대해 덕분에 좀 더 확실하게 공부는 됐다. 주말에 추가요구사항으로 프론트엔드쪽도 해보려고 그쪽 강의를 다시 봤는데 로그아웃이 나왔다. 왜 강의를 다 들어놓고 생각이 안 났을까 다음주 목표 AWS 원격 강의 수강! 웹개발, 알고리즘..
TIL 042823 회원계정 삭제 시 미디어 폴더에 프로필 사진이 있다면 같이 삭제하는 방법 https://devforyou.tistory.com/entry/Django-rest-framework%EC%97%90%EC%84%9C-%EC%9C%A0%EC%A0%80-%ED%94%84%EB%A1%9C%ED%95%84-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%93%B1%EB%A1%9D-%EC%9C%A0%EC%A0%80-%EC%82%AD%EC%A0%9C%EC%8B%9C-%ED%8C%8C%EC%9D%BC-%EC%82%AD%EC%A0%9C-%EC%BB%A4%EC%8A%A4%ED%85%80%EC%9C%A0%EC%A0%80-%ED%94%84%EB%A1%9C%ED%95%84-%EC%9D%B4%EB%AF%B8%EC%A7%80-..
TIL 042723 0부터 시작하는 인덱스와 첫번째부터 시작하는 n번째 값 헷갈리지 말기!!! .sort()는 리스트만 할 수 있다. sorted()는 문자열도 정렬할 수 있지만 리스트를 반환한다. 문자 반복 문자열*숫자 input으로 값 2개 받기 a, b = map(int, input().strip().split(' ')) 제곱근 import math해서 math.sqrt() 할 수도 있지만 **0.5로 하면 import할 필요 없다. .find(): 문자열에서 쓰는 함수 못 찾으면 -1 반환 여러개면 맨 앞에꺼 인덱스 반환 리스트에 값 여러개 append하기 .extend() answer = [] answer.extend([1, 24]) # [1, 24] # answer.append([1, 24]) # [[1, 24]..
TIL 042623 3진법 45를 3진법으로 나타내려면 몫이 0이 될때까지 3으로 계속 나누면서 그 나머지들을 쭈욱 쓰면 된다. 45/3=15...0 15/5=5...0 5/3=1...2 1/3=0...1 ---> 10진법 45 = 3진법 1200 divmod(): 나눗셈에서 몫과 나머지를 모두 구해준다. quotient, remainder = divmod(45, 3) # quotient=15, remainder=0 divmod(45, 3) # (15, 0) 튜플 타입으로 반환 int를 쓰면 n진수를 쉽게 10진수로 변환할 수 있다. int('숫자', n): 앞에 들어가는 숫자는 꼭 타입이 string이어야 한다. int('1200', 3) 또는 int(str(1200), 3) # 45 문제를 풀 때 사용하진 않았지만 파이..
TIL 042523 .replace(): 그냥 쓰면 한꺼번에 다 바꿔버린다. 문자열.replace("없애버릴문자", "새로넣을문자", 횟수): 앞에서부터 횟수만큼 replace한다. 리스트의 요소들에 모두 같은 연산을 하고 싶을 때: map, lambda 이용 board = [7, 9] board_m = map(lambda x : (x-1)/2, board) # [3, 4] 중복 순열 from itertools import product base = [0, 5] list(product(base, repeat=1)) # [(0,), (5,)] list(product(base, repeat=2)) # [(0, 0), (0, 5), (5, 0), (5, 5)] list(product(base, repeat=3)) # [(0, 0..