오늘은 프로그래머스의 '완주하지 못한 선수' 문제를 풀면서 알게된 정렬 함수 list.sort()와 sort(list)의 차이에 대해 알아보겠습니다. def solution(participant, completion): participant.sort() completion.sort() for i in range(len(participant)): try: if participant[i] != completion[i]: return participant[i] except: return participant[i] 위코드와 아래 코드는 어떤 차이가 있을까요? def solution(participant, completion): participant = participant.sort() completion = c..

2차원 리스트 뒤집기 - ⭐️zip⭐️ zip 함수를 이용해 2차원 배열을 뒤집는 방법을 알아봅시다. 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통은 다음과 같이 2중 for 문을 이용해 리스트의 row와 column을 뒤집습니다. mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = [[], [], []] for i in range(len(mylist)): for j in range(len(mylist[i])): new_list[i].append(mylist[j][i]) 하지만, 파이썬의 zip과 unpacking 을 이용하면 코드 한 줄로 리스트를 뒤집을 수 있습니다. mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] n..

원본을 유지한채, 정렬된 리스트 구하기 - sorted 파이썬의 sort() 함수를 사용하면 리스트의 원소를 정렬할 수 있습니다. 이때, sort 함수는 원본의 멤버 순서를 변경하지요. 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort 함수를 사용할 수 없습니다. 이런 경우는 어떻게 해야 할까요? 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 deep copy와 sort 함수를 이용합니다. list1 = [3, 2, 5, 1] list2 = [i for i in list1] # 또는 copy.deepcopy를 사용 list2.sort() 파이썬의 sorted를 사용해보세요. 반복문이나, deepcopy 함수를 사용하지 않아도 새로운 정렬된 리스트를 구할 수 있습니다...

알파벳 출력하기 - string 모듈 이번 강의에서는 모든 대문자를 또는 모든 소문자를 또는 모든 대소문자를 또는 숫자를 가져오는 방법을 배웁니다. 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 a부터 z까지의 소문자를 가져오려고 할 때, 'abcdefg ....'와 같이 손수 알파벳을 입력하곤 합니다. answer = 'abcdefghijk (편의상 생략)' 파이썬은 이런 데이터를 상수(constants)로 정의해놓았습니다. import string string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ string.ascii_letters..

문자열 정렬하기 - ljust, center, rjust 예시) '가나다라 ' # 좌측정렬 ' 가나다라' # 우측 정렬 ' 가나다라 ' # 가운데 정렬 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 for 문을 이용해 기존 스트링에 공백문자 (' ') 를 여러 번 붙이는 번거로운 일을 하지요. 이렇게요! ### 우측 정렬 예 s = '가나다라' n = 7 answer = '' for i in range(n-len(s)): # 문자열의 앞을 빈 문자열로 채우는 for 문 answer += ' ' answer += s 파이썬에서는 ljust, center, rjust와 같은 string의 메소드를 사용해 코드를 획기적으로 줄일 수 있습니다. s = '가나다라' n = 7 s.ljust(n..

n진법으로 표기된 string을 10진법 숫자로 변환하기 - int 함수 진법 변환 문제는 알고리즘 문제나 숙제로 자주 나오는 유형이지요. 이번 시간에는 n 진법으로 표기된 문자열을 10진법 숫자로 변환하는 방법을 배워봅시다. 예시) 5진법으로 적힌 문자열 '3212'를 10진법으로 바꾸기 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 for 문을 이용해 숫자를 곱해가며 문제를 풉니다. num = '3212' base = 5 answer = 0 for idx, number in enumerate(num[::-1]): answer += int(number) * (base ** idx) 파이썬의 int(x, base=10) 함수는 진법 변환을 지원합니다. 이 기본적인 함수를 잘 쓰면 코드..

알고리즘 문제를 풀다 보면, 정수를 나눈 몫과 나머지를 구해야 할 때가 있습니다. 예시) 7을 3으로 나눈 몫과 나머지를 구해야 하는 경우 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 나머지와 몫을 따로 구합니다 a = 7 b = 5 print(a//b, a%b) 파이썬에서는 파이썬의 divmod와 unpacking(*)을 이용하면 다음과 같이 코드를 짤 수 있습니다. a = 7 b = 5 print(*divmod(a, b)) divemode(a,b) => a를 b로 나눈 목과 나머지를 tuple로 return ⨳ divmod를 사용할 때 주의할 점 무조건 divmod를 사용하는 게 좋은 방법은 아닙니다.가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 ..

1. 회원가입을 한다. -> 백서버 : DB에 회원의 정보가 저장됨. 2. 로그인을 한다. -> 백서버 : 로그인시 입력한 정보와 DB에 저장된 회원의 정보가 일치하면 로그인이 성공되며, 백 서버에서는 토큰(token)을 발행해준다. # 로그인시 토큰 발행 로직 class Login(View): def post(self, request): try: data = json.loads(request.body) if not User.objects.filter(email=data['email']).exists(): return JsonResponse({"message": "존재하지 않는 아이디입니다!"}, status=401) current_user = User.objects.get(email=data['emai..

wecode 24일차 오늘은 드디어 backend와 Fronend 개발자가 협업하여 각자 구현한 westagram 기능을 합쳐 정상적인 로그인과 회원가입의 기능을 구현해보는 날이다...!! 다음주부터 시작하는 프로젝트시에도 매우 중요한 과정이기에 다른 포스팅보다 나름 애정을 갖고 포스팅을 해본다. Session의 공통 학습목표 로그인 과정에서 일어나는 프론트엔드, 백엔드 간 통신 흐름을 설명할 수 있다. Access Token 과 JWT의 개념을 이해하고 설명할 수 있다. (프론트) 백엔드에서 전달 받은 Access Token을 프론트 단에서 어떻게 관리하는지 설명할 수 있다. (프론트) fetch 함수의 구조를 이해하고, 이를 이용하여 서버에 HTTP 요청을 보낼 수 있다. (백엔드) 코드를 직접 치기..