알고리즘 - 페어 프로그래밍
1. 배열 두배 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/120809
이미 한번 풀어본 문제이기 때문에 다른 방식으로 풀 수 있는 방법들을 생각해보았다.
def solution(numbers):
a = []
for k in numbers:
a.append(k*2)
return a
def solution(numbers):
a = list(map(lambda x: x*2 ,numbers))
return a
def solution(numbers):
return [i*2 for i in numbers]
2. 배열 뒤집기
https://school.programmers.co.kr/learn/courses/30/lessons/120821
def solution(num_list):
result = []
for i in range(len(num_list)-1,-1,-1):
result.append(num_list[i])
return result
def solution(num_list):
return num_list[:-1]
3. 있어보이게 알고리즘 푸는 법
*리스트 컴프리헨션
[식 for 항목 in 순회 가능한 객체]
*람다 함수
lambda 매개변수: 매개함수
*맵 함수
map(함수, 순회가능한 객체)
*filter 함수
filter(함수, 순회가능한 객체)
2주차 숙제
숙제1
회원가입 시 elif문으로 username이 같을 경우 회원가입이 되지 않게 만들기
UserModel.objects.filter(username=username).exists():
UserModel에서 객체를(objects) 필터링하는데(filter),
username필드가 username과 일치하는 객체가 있는지(exists)
여부를 판단해 True 혹은 False를 반환한다.
def sign_up_view(request):
if request.method == 'GET':
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
password2 = request.POST.get('password2', None)
bio = request.POST.get('bio', None)
if password != password2:
return render(request, 'user/signup.html')
elif UserModel.objects.filter(username=username).exists():
return render(request, 'user/signup.html')
else:
new_user = UserModel()
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
return redirect('/sign-in')
숙제2
로그인 성공시 화면에 "로그인 성공! "대신 사용자 이름을 출력하도록 변경
return HttpResponse("로그인 성공!")을
return HttpResponse(me.username)으로 바꿔주기만 하면 끝
def sign_in_view(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
me = UserModel.objects.get(username=username)
if me.password == password:
request.session['user'] = me.username
return HttpResponse(me.username)
else:
return redirect('/sign-in')
elif request.method == 'GET':
return render(request, 'user/signin.html')
'WIL&TIL > TIL' 카테고리의 다른 글
20230406 TIL (0) | 2023.04.06 |
---|---|
20230405 TIL - 알고리즘 (1) | 2023.04.05 |
20230403 TIL (0) | 2023.04.03 |
20230401 TIL (0) | 2023.04.01 |
20230331 TIL 알고리즘과 아이컨택하기 (2) | 2023.03.31 |
댓글