전체 글192 프로그래머스 / 올바른 괄호 / 파이썬 def solution(s): num_left = 0 for i in s: if i == "(": num_left += 1 else: num_left -= 1 if num_left < 0: return False if num_left == 0: return True return False 간단하게 ( 이면 1을 더하고 ) 면 1을 빼는 방식으로 접근하면 된다. for문 즉, s를 한바퀴 도는 도중에 음수로 넘어가면 올바르지 않은 괄호 확정이며 다 돌았을 때 0이 아니면 올바르지 않은 괄호이다. 2022. 9. 14. 22.9.13 1. 프로그래머스 2문제 이진변환 https://softl.tistory.com/206?category=523377 최솟값 최댓값 https://softl.tistory.com/205?category=523377 2. 기술 스터디 https://softl.tistory.com/207?category=581866 1. Stack과 Queue 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요. Stack은 후입 선출이며 Queue는 선입 선출입니다. 스택은 같은 구조와 같은 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top(맨 마지막)으로 정한 곳을 통해서만 접근할 수 있습니다. 반대로 큐의 경우 front(제일 처음)에서 삭제 연산이 진행되며, 삽입 연산은 rear(마지막)에서 진행됩니다. 2... 2022. 9. 13. Django 스터디 1. Django가 무엇인지 설명하시오 Django는 Python으로 만들어진 Framework로 유저들이 쉽고 빠르게 웹 사이트를 개발할 수 있도록 도와줍니다. 2. Django를 백엔드 스택으로 선정하는 이유는 무엇입니까? 프로젝트에서 사용할 AI 모델의 데이터를 가공하기 용이했습니다. 보통 AI 모델들은 텐서플로우, 파이토치로 실행을 하는데 두 라이브러리는 파이썬 기반으로 구성되어있습니다. 따라서 백엔드 단에서 Response를 줄 때 같은 파이썬을 쓰는 Django가 유리하다고 생각했습니다. (또한 Flask보다 시간을 줄일 수 있다.) 3. Django에는 어떤 장점이 있습니까? Django는 웹 프레임워크로 쉽고 빠르게 웹사이트 개발을 도와줍니다. 웹 사이트를 만들때, 로그인, 로그아웃, 관리.. 2022. 9. 13. 기술 스터디 - 9월 14일(수) 1. Stack과 Queue 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요. Stack은 후입 선출이며 Queue는 선입 선출입니다. 스택은 같은 구조와 같은 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top(맨 마지막)으로 정한 곳을 통해서만 접근할 수 있습니다. 반대로 큐의 경우 front(제일 처음)에서 삭제 연산이 진행되며, 삽입 연산은 rear(마지막)에서 진행됩니다. 2. Array와 Linked List 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요. Array는 연속된 메모리 공간에 저장되고 Linked List는 메모리 어딘가에 저장되며 앞/뒤 데이터의 위치를 기억합니다. Array는 인덱스를 통해 원소에 접근하고, Linked List는 순차.. 2022. 9. 13. 프로그래머스 / 이진 변환 반복하기 / 파이썬 def change_s(n): answer = "" while n > 1: if n % 2 == 0: answer += "0" else: answer += "1" n = n //2 answer += "1" return answer[::-1] def solution(s): num_zero = 0 cycle = 0 while s != "1": cycle += 1 num_zero += s.count("0") s = s.replace("0","") s = change_s(len(s)) return [cycle, num_zero] 우선 change_s라는 십진법을 이진법으로 바꿔주는 함수를 만든다. 마지막에 "answer+=str(1)"을 해주는 이유는 결국 n이 1보다 클때까지 실행하기 때문이다. 즉, 1이 항.. 2022. 9. 13. 프로그래머스 / 최댓값과 최솟값 / 파이썬 def solution(s): s = s.split(" ") max_num = int(s[0]) min_num = int(s[0]) for i in s: if int(i) > max_num: max_num = int(i) continue if int(i) < min_num: min_num = int(i) return f"{min_num} {max_num}" 이 문제는 int로 변환시켜주는게 핵심이다. str의 상태이면 문제의 예시 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 가 무조건 반대로 될것이다. 2022. 9. 13. 22. Django Amazon s3 설정하기 IAM 우선 사용자 추가이다. 여기서 햇갈리지 말하야 할건 '사용자' == '실제 Amazon 가입 맴버'가 아니라 내가 지정하는 그룹의 사용자이다. 즉, 같이 s3를 활용할 팀원들 밑 자기 자신을 작성하는 것이다. S3 default 상태로 생성 액세스키 생성 이 부분은 필자가 햇갈린 부분인데 아래의 보안 자격 증명은 사용되지 않는다. 위에 사용자 추가에서 자신의 비밀 엑세스키와 엑세스 키 ID를 만드는 것이 맞다. Django에 설정하기 #settings.py #AWS S3 import json DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' STATICFILES_STORAGE = 'storages.backends.s3boto3.S.. 2022. 7. 29. 24. DRF JWT 사용하기 JWT Setting simplejwt를 설치한다. 기존 djangorestframework-jwt는 더 이상 업데이트 되지 않는다. $ pip install djangorestframework-simplejwt JWT로 인증을 할것이기 때문에 settings.py에 REST_FRAMEWORK의 인증 방식을 추가해준다. #settings.py 'DEFAULT_AUTHENTICATION_CLASSES': [ ... # JWT 인증 방식 추가하기 'rest_framework_simplejwt.authentication.JWTAuthentication', ], simplejwt에서 제공하는 기본 JWT 인증을 사용한다. 따라서 인증 토큰 발근 urlpatterns에 토큰 발급 view를 추가해준다. #user.. 2022. 7. 18. 23. DRF JWT란 Session 인증 방식 브라우저에서 사용자가 인증(Authentication)을 수행하면 서버에서는 사용자의 정보를 저장하고 그 응답으로 JESSIONID라는 키를 이용해 클라이언트(사용자) 브라우저의 쿠키에 세션 정보를 저장한다. 이후 클라이언트는 브라우저 쿠키에 저장된 JESSIONID로 저장된 세션 정보를 이용해 인가(Authorization)된 정보에 접근할 수 있게 된다. Token 인증 방식 사용자가 인증을 수행하면 서버에서 토근을 생성 후 저장하지 않고(stateless) 토큰값을 사용자의 브라우저에 응답한다. 발급된 토큰을 사용자가 인가된 사용자만 사용할 수 있는 서비스를 요청할 때 함께 보내게 되고, 서버에서 이 토큰을 의미 있는 값(ex. 사용자 정보)으로 해석하게 된다. 그리고 이 .. 2022. 7. 18. 이전 1 ··· 6 7 8 9 10 11 12 ··· 22 다음