일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- iterable
- AI 5기
- with\
- Iterator
- 데이터리안
- vscode
- python
- gitignore
- 함수성능평가
- WIL
- itertools
- Level1
- git #github #내일배움캠프
- googlesheet
- 그로스해킹
- 알고리즘
- venv
- 우선순위
- A태그
- 가상환경
- cte
- 프로그래머스
- 데벨챌
- 데이터넥스트레벨챌린지
- 함수실행시간
- googleappscript
- 내일배움캠프
- position
- time()
- Display
- Today
- Total
목록전체 글 (87)
05의 개발 계발
문자열정렬하기(2) 페어프로그래밍 결과 코드 # 페어프로그래밍으로 제작한 코드 def solution(my_string): #소문자로 바꾸기 → lower my_string = my_string.lower() #정렬하기 → sorted() a=sorted(my_string) #list에서 str → join b="".join(a) return b +테스트용 코드 더보기 import os os.system("cls") #페어프로그래밍 코드 def solution(my_string): #소문자로 바꾸기 → lower my_string = my_string.lower() #정렬하기 → sorted() a=sorted(my_string) #list에서 str → join b="".join(a) return b ..
스스로 호출하는 함수 깊이 우선 탐색(DFS) vs 너비 우선 탐색(BFS) *참고링크 트리 ← 중위.전위.후위 순회 → 재귀 리턴값 無 재귀함수와 리턴값 有 재귀함수도있지만, 코딩테스트에서는 리턴값 有 재귀함수를 자주 활용하여 푼다. -반복문 중복보다 효율적일 경우가 있다! -유의할 점: 종료 조건. 끝도 없이 호출되어서는 안된다. 실행을 멈출 종료 시점을 알아야한다. #최대 재귀 깊이 (maximum recursion depth): 재귀함수를 최대로 호출할 수 있는 횟수 파악 print(sys.getrecursionlimit()) 1. 문제 푸는 전체과정을 펼처 생각해보았을 때 2. 문제 풀이 과정의 일부분이 문제를 푸는 전체 과정과 유사하다 → 즉, 문제 풀이 과정에서 비슷한 논리가 꼬리에 꼬리를 ..
개인정보 수집 유효기간 내 코드 def solution(today, terms, privacies): #오늘 날짜를 년,월,일 로 받은 후 → 일단위로 변환하여 저장 [year,month,day] = today.split(".") today = sum([int(year)*12*28,int(month)*28,int(day)]) #약관종류와 유효기간이 쌍값 → dict저장 + 유효기간은 일단위로 terms_dict = {} for term in terms: typ,exp = term.split(" ") terms_dict[typ] = int(exp)*28 #파기목록 선언 expired_list = [] #개인정보 수집일자와 약관종류 분리 for i,privacie in enumerate(privacies,1..
캐릭터의 좌표 페어프로그래밍 결과 코드 # 페어프로그래밍으로 제작한 코드 def solution(keyinput, board): [X,Y] = board #맵의크기 [X,Y] = [int((X-1)/2),int((Y-1)/2)] #맵의허용범위크기 [x,y] = [0,0] #처음좌표 for i in keyinput: #입력방향에 따른 조작 구현 if i == "up": [x,y] = [x,min(y+1,Y)] #맵의 범위를 넘지않도록 elif i == "down": [x,y] = [x,max(y-1,-Y)] elif i == "left": [x,y] = [max(x-1,-X),y] elif i == "right": [x,y] = [min(x+1,X),y] answer = [x,y] return answer..
TIL 학습목표 사용자 인증방식의 종류와 특징을 안다. Cookies / JWT / OAuth 의 장단점을 안다. 1) 사용자 인증이란? 로그인이 필요한 서비스의 경우, 해당 사용자가 회원인가? 회원이라면 어느 회원인가? 등 사용자를 인증하는 과정이 필요하다. 즉, ID입력 PW 입력 등 일련의 로그인 과정 전체를 아울러 사용자 인증 이라고 한다. 그런데, 매번 로그인 과정 마다 사용자는 ID와 PW를 제공하고, 서버는 새롭게 DB와 대조하여 사용자를 인증한다면, 사용자는 불편함을, 서버는 리소스 낭비와 응답속도저하 라는 단점이 생긴다. 이를 보완하기 위해 부분적으로 "client와 server의 연속된 동작 상태정보를 저장하는 형태", 즉 stateful 한 형태를 만들어야했고, 인증관련 정보를 저장할..
안전지대 페어프로그래밍 결과 코드 # 페어프로그래밍으로 제작한 코드 def solution(board): #한 변의 길이 N과 전체지역 total_zone N=len(board) total_zone_count = N**2 # 위험지역을 저장할 리스트 list_danger=[] for x in range(N): for y in range(N): if board[x][y] == 1: # 폭탄위치 판별 list_danger.append((x,y)) # 폭탄위치 저장 list_danger.append((x-1,y+1)) # 1시 list_danger.append((x,y+1)) # 3시 list_danger.append((x+1,y+1)) # 5시 list_danger.append((x+1,y)) # 6시 li..
TIL 학습목표 DRF프로젝트를 세팅할 수 있다. DRF프로젝트를 github에 업로딩 할 수 있다. 과정 및 명령어 표 순서 과정 분류 명령어($ 제외하고 입력) 설명 1-1 가상환경 $ python -m venv venv 가상환경 1-2 가상환경 $ source venv/Scripts/activate 가상환경활성화 2-1 PIP $ pip install django djangorestframework djangorestframework-simplejwt or $ pip install djangorestframework-simplejwt 장고, DRF, simpleJWT 설치 *여기서 Django와 DRF는 simpleJWT의 의존성패키지로, simpleJWT 만 설치해도 같이 설치된다. 2-2 PIP..
TIL Review 2023.04.18 - [TIL] - [TIL] 230417 회원가입 조건 세분화하기 | if 2023.04.18 - [TIL] - [TIL] 230418 데이터 타입별 메서드 + 프로세스, 스레드 2023.04.20 - [TIL] - [TIL] 230419 coroutine & asyncio | pipenv & poetry 2023.04.21 - [TIL] - [TIL] 230420 gitignore를 무시한 .vscode 폴더 issue (+원인파악완료) 2023.04.21 - [TIL] - [TIL] 230421 실패율 | try-except , dict, sorted + α 2023.04.17 - [내일배움캠프 AI/Python > Django] - [KPT 회고] AI-5기 ..
실패율 페어프로그래밍 결과 코드 ##############함수 로직################ ''' 1.input값과 result값을 보기 -input N :총 스테이지 수 stages : .element 플레이어의 도전중인 스테이지 -result 실패율이 높은 스테이지 순으로 스테이지의 번호가 list값으로 나와야한다. =>스테이지별 실패율 구하고, 역순 정렬하기 스테이지별 실패율 = 도전 중인 플레이어 수/ 도전중인 플레이어수+지나간 플레이어수 도전 중인 플레이어수+지나간 플레이어수= 총 플레이어수 - 도전 못한 플레이어수 도전 중인 플레이어 수는 dict로 구하기 → key값을 통해서 시간복잡도 낮추기 위해서이다. 각 스테이지 별 실패율을 for문과 key를 통해서 구한후 실패율(key)에 해당..
인덱스바꾸기 배열의 유사도 페어프로그래밍 결과 코드 # 인덱스 바꾸기 # 페어프로그래밍으로 제작한 코드 # 페어프로그래밍 1번 - 리스트컴프리헨션사용 def solution(my_string, num1, num2): #문자열을 리스트로 변환한다. list_=[s for s in my_string] #리스트에서 num1과 num2 요소를 분리해낸다. #두 요소를 교환해준다. list_[num1],list_[num2] =list_[num2],list_[num1] # 파이썬의 특징! 변수의 값을 서로 바꿀 때 사용! #분리되었던 list를 다시 str으로 바꿔준다. → join 사용 answer = ''.join(list_) return answer # 페어프로그래밍 2번 - list클래스사용 def solu..
TIL 학습목표 gitignore.io를 통해 .gitignore를 만들 수 있다. VScode에 대한 .gitignore 설정을 이해할 수 있다. .vscode 폴더가 github에 올라간 issue의 원인을 알고, 이를 방지하기 위해 필요한 것을 안다. 1) 문제점 (Problem) github를 통해 팀프로젝트를 진행하던 중 어느샌가 .vscode 파일이 생겨버렸다. 그런데 레파지토리의 첫 커밋부터 gitignore를 추가 한 뒤 작업을 시작했기에, vscode 관련 값들은 ignore(무시)되어 github에 올라가야 정상이었다. 원인을 찾지 못해 고생하였던 과정(Try)과, 끝내 양튜터님의 도움으로 파악할 수 있었던 원인(Solution)에 대해, 그리고 이를 방지하기 위한 방법(Learned)..
하샤드 수 페어프로그래밍 코드 # 페어프로그래밍으로 제작한 코드 def solution(x): # 하샤드수 판별! # X가 양의정수! 각 자리수를 더해야한다 → 반복! 반복문! for 사용! # 자릿수별로 뽑아내야하니, 숫자형을 문자열로 변경 후 뽑아내자! str_x = str(x) y=0 for i in str_x: y += int(i) # 기존 x가 합한 수 y로 나누어 떨어지는지 판별 if x % y == 0: answer = True return answer 리팩토링 코드 # 리팩토링(삼항연산자 리스트컴프리헨션 사용) import os os.system("cls") # 리팩토링코드(리스트컴프리헨션 + 삼항연산자 + 변수 직관적으로 변경) def solution(x): # 리스트컴프리헨션 sum_x..