AWS 완강! 강의에 개념적인 용어들이 많이 나와서 복습하면서 정리할 예정
학교 C프로그래밍 과제하는데 Dev-C++을 처음 사용해보았다.
Today I Learned
- 재귀함수 풀이 / request / json / 파일 입출력에 대해 배웠다
프로그래머스의 같은 문제를 팀원들끼리 각자 풀이하여 노션에 공유하였다.
소은(나)
def solve_key(skip_list, _char, index):
n = 0
_char = ord(_char)
while True:
_char += 1
if _char > 122:
_char -= 26
if _char not in skip_list:
n += 1
if n == index:
break
return chr(_char)
def solution(s, skip, index):
skip_list = list(map(lambda x: ord(x), skip))
s_list = list(map(lambda x: solve_key(skip_list, x,index), s))
answer = ''.join(s_list)
return answer
다른 분들의 풀이
import string
def solution(s, skip, index):
words = [i for i in string.ascii_lowercase if i not in skip]
answer = ''
for i in s:
idx = words.index(i)+index
if idx < len(words):
answer += words[idx]
else:
answer += words[idx % len(words)]
return answer
def solution(s, skip, index):
ans = ''
slist= list(s)
skip_list = list(skip)
for i in slist:
if 97 <= ord(i)+index <= 122: # a가 알파벳 아스키코드 범위내에 있다면
a = ord(i) + index
for s in skip_list:
if ord(i) < ord(s) <= ord(i) +index:
a += 1
if 122 < a :
a = a - 122 + 96
ans += chr(a)
elif 122 < ord(i)+index :
a = ord(i)+index -122 + 96
for s in skip_list:
if ord(i) < ord(s) < ord(i) +index:
a += 1
if 122 < a :
a = a - 122 + 96
ans += chr(a)
return ans
- 훈희매니저님과 함께 페어프로그래밍을 했다. 매니저님이랑 처음에 풀었던 방식은 술술 풀렸는데 시간복잡도가 조금 벅찬 문제여서 다른 풀이로 시도했다! 정답률이 낮은 이유가 있었다.,
https://sogummi.tistory.com/117
< 개인과제 수정 건 >
1. Todo apps의 views.py에 있는 delete 함수 수정
if문을 사용했던 것을 get_object_or_404()매개변수에 넣어서 코드를 더 깔끔하게 줄였는데
user=request.user가 아닌 user=request.user.id로 넣어주어야 한다.
원인 :
Todo/models.py의 user필드가 ForeignKey이기 때문!
User apps/models.py/User클래스에서 USERNAME_FIELD = "email"로 지정해놓은 상태라서,
print("request.user")를 해보면 유저의 이메일이 출력된다.
때문에 request.user.id로 지정해줘야 제대로 삭제가 된다!
class TodoDetailView(APIView):
permission_classes = [permissions.IsAuthenticated]
def get(self, request, id):
article = get_object_or_404(TodoArticle, id=id)
serializer = TodoSerializer(article)
return Response(serializer.data, status=status.HTTP_200_OK)
def put(self, request, id):
article = get_object_or_404(TodoArticle, id=id)
if request.user == article.user:
serializer = TodoCreateSerializer(article, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else:
return Response("권한이 없습니다", status=status.HTTP_403_FORBIDDEN)
def delete(self, request, id):
article = get_object_or_404(TodoArticle, id=id, user=request.user.id)
article.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
위 코드는 delete함수를 수정한 TodoDetailView클래스
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 TIL 40일차 (0) | 2023.05.06 |
---|---|
내일배움캠프 TIL 39일차 (0) | 2023.05.06 |
내일배움캠프 TIL 37일차 (WSL에서 폴더열기) (2) | 2023.05.02 |
내일배움캠프 TIL 36일차 (윈도우에서 WSL사용하기) (4) | 2023.05.02 |
내일배움캠프 TIL 35일차 (0) | 2023.05.01 |