3개의 원소의 합이 0이 되는 조합의 개수를 구하면 되는 문제
from itertools import combination
으로 풀어도 되고 3개의 원소를 찾는 것이기 때문에 반복문을 3개 사용하여 풀 수도 있다.
평소 재귀를 사용하는데 어려움을 느끼지만 해당 문제는 재귀로 풀 수 있을 것 같아서 재귀로 풀기로 했다.
슈도 코드를 바탕으로 코드를 구현
def recur(stk, number, n):
global answer
if len(stk) == 3:
if sum(stk) == 0:
answer += 1
else:
for i in range(n, len(number)):
stk.append(number[i])
recur(stk, number, i + 1)
stk.pop()
answer = 0
def solution(number):
stk = []
recur(stk, number, 0)
return answer
Django-allauth를 사용하여 로그인, 회원가입, kakao 로그인을 구현하려 한다.
공식 문서와 구글링을 통해 allauth 설정하기
poetry add django-allauth
INSTALLED_APPS = [
...
# allauth
'allauth',
'allauth.account',
'allauth.socialaccount',
# ... include the providers you want to enable:
'allauth.socialaccount.providers.kakao',
]
MIDDLEWARE = [
...
# Add the account middleware:
'allauth.account.middleware.AccountMiddleware',
]
SOCIALACCOUNT_PROVIDERS={
'kakao':{
# For each OAuth based provider, either add a ``SocialApp``
# (``socialaccount`` app) containing the required client
# credentials, or list them here:
'APP':{
'client_id': '123',
'secret': '456',
'key': ''
}
}
}
TEMPLATES = [
{
...
"OPTIONS": {
"context_processors": [
...
# allauth
'django.template.context_processors.request',
],
...
]
AUTHENTICATION_BACKENDS=[
# Needed to login by username in Django admin. regardless of 'allauth'
'django.contrib.auth.backends.ModelBackend',
# 'allauth' specific authentication methods, such as login by e-mail
'allauth.account.auth_backends.AuthenticationBackend',
]
kakao는 secret key가 없고 client_id에 Rest api key를 넣으면 된다고 한다.
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
...
]
python manage.py migrate
accounts/login
kakao login
login 성공
login을 성공하여 accounts/profile로 넘어왔지만 해당 페이지 미구현으로 404에러 출력
-> allauth에 맞는 url template을 구현해야 한다.
-> 추후 구글, 네이버 로그인을 추가할 때 어렵지 않게 구현이 가능할 것 같다.