본문 바로가기

전체 글197

[알고리즘] 프로그래머스 - 삼총사 삼총사 for문 def solution(number): cnt = 0 for i in range(len(number)-2): for j in range(i+1, len(number)-1): for k in range(j+1, len(number)): if number[i] + number[j] + number[k] == 0: cnt += 1 return cnt itertools.combinations from itertools import combinations def solution(number): cnt = 0 c = combinations(number, 3) combi_ = list(c) for i in combi_: if sum(i) == 0: cnt +=1 return cnt 2023. 5. 2.
[알고리즘] 프로그래머스 - 콜라 문제 콜라 문제 하나씩 빼기 def solution(a, b, n): answer = 0 while n >= a: n = n - a + b answer += b return answer 나누기 def solution(n, a, b): answer = 0 while n >= a: q, r = divmod(n, a) n = q * b + r answer += q * b return answer 재귀 def solution(n, a, b): if n < a: return 0 return b + solution(n-a+b, a, b) 2023. 5. 2.
[알고리즘] 프로그래머스 - 크레인 인형뽑기 게임 크레인 인형뽑기 게임 보드 정렬하기, 0은 아예 넣지 않고 시계방향으로 90도 돌려버린 리스트로 바꾼 후, result가 비어있거나, 이번에 뽑은 값과 전에 뽑은 값이 다르면, 그냥 크레인으로 뽑아서 result에 넣기 리스트가 비어있지 않고, 이전에 뽑은값 == 전에 뽑은 값이면, result에 넣지 않고, result에서 pop 하고, 카운트를 2개 올림 def solution(board, moves): new_board = [] for i in range(len(board[0])): arr = [board[j][i] for j in range(len(board[0])) if board[j][i]] arr.reverse() new_board.append(arr) result = [] answer = .. 2023. 5. 2.
[알고리즘] 프로그래머스 - 문자열 돌리기 문자열 돌리기 for문으로 돌리기 str = input() for i in str: print(i) 리스트로 바꿨다 접합수술하기 str = input() print("\n".join(list(str))) 2023. 5. 2.
[알고리즘] 프로그래머스 - 배열 조각하기 배열 조각하기 문제의 설명을 그대로 코드로 옮김 def solution(arr, query): for i in range(len(query)): if not i % 2: arr = arr[:query[i]+1] else: arr = arr[query[i]:] return arr 2023. 5. 2.
[알고리즘] 프로그래머스 - 옹알이(1) 옹알이 babbling내에 해당 문자열이 있을 시, replace로 1로 바꿈(1개만) 다 바꾼 뒤 문자열이 isdigit(), 즉 숫자로만 이루어져 있다면 cnt +=1 def solution(babbling): ong_al = ["aya", "ye", "woo", "ma"] cnt = 0 for i in babbling: for j in ong_al: if j in i: i = i.replace(j, "1", 1) if i.isdigit(): cnt += 1 return cnt 정규 표현식을 사용한 방법 import re def solution(babbling): regex = re.compile('^(aya|ye|woo|ma)+$') cnt=0 for e in babbling: if regex.ma.. 2023. 5. 2.
Django 공식문서 읽기 - Customizing authentication in Django(3) Handling authorization in custom backends 더보기 사용자 지정 백엔드 인증에서는 자체 권한을 제공할 수 있다. User모델과 관리자는 권한 조회 기능을 백엔드에 위임한다. 백엔드가 has_perm() 또는 has_module_perms()에서 PermissionDenied 예외를 발생시키면 인증이 즉시 실패하고 Django는 이후의 백엔드를 확인하지 않는다. 전체 인증 구현은 기본 백엔드인 django/message/auth/backends.py의 ModelBackend 클래스에서 찾을 수 있으며 대부분 auth_permission 테이블을 쿼리(?)한다. Authorization for anonymous users 더보기 Django의 권한 프레임워크에는 익명 사용자에 .. 2023. 5. 2.
Django 공식문서 읽기 - Customizing authentication in Django(2) Writing an authentication backend get_user 메서드는 user_id(사용자 이름, 데이터베이스 ID 등일 수 있지만 사용자 개체의 PK여야 함)를 사용하고 사용자 객체 또는 None을 반환한다. from django.contrib.auth.backends import BaseBackend class MyBackend(BaseBackend): def authenticate(self, request, username=None, password=None): # Check the username/password and return a user. ... 토큰도 인증할 수 있다. from django.contrib.auth.backends import BaseBackend class.. 2023. 5. 2.
AWS EC2 instance connect - ERR_CONNECTION_REFUSED EC2 - instances - Launch instances instance name 입력 Ubuntu instance type - t2.micro keypair 선택 Launch instance instance_id 클릭 후 - Security - Inbound rules에 http, https 추가해주고, Connect sudo apt-get update sudo apt-get install nginx sudo systemctl start nginx 이후 https로 들어갔을때, ERR_CONNECTION_REFUSED 발생 해결방법 https 연결 방법은 아직 추가로 설정해줘야 할 것들이 있음. http로 들어가기 2023. 5. 2.