본문 바로가기

분류 전체보기197

[알고리즘] 프로그래머스 - 내적 내적 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 구해야 하는 것 # a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 2. 1을 구하기 위해 필요한 것 # 배열의 길이 # len() # for문 0부터 배열의 길이만큼 answer에 a[i]*b[i]를 더해줬다. def solution(a, b): answer = 0 for i in range(len(a)): answer += a[i]*b[i] return answer sum()과 리스트 컴프리헨션으로 축약한 코드 def solution(a, b): return sum.. 2023. 5. 4.
[알고리즘] 프로그래머스 - 행렬의 덧셈 행렬의 덧셈 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 구해야 하는 것 # 두 행렬의 같은 행, 같은 열의 값을 서로 더한 행렬 2. 1을 구하기 위해 필요한 것 # 각각의 행과 열의 길이 # len() # 각각 더하는 방법 # for문 행의 개수만큼 빈리스트 추가, 0부터 row의 개수까지 각각의 값들을 더해서 위에 만든 리스트에 추가 def solution(arr1, arr2): answer = [] for i in range(len(arr1)): answer.append([]) for j in range(len(arr1[0])): answe.. 2023. 5. 4.
[알고리즘] 프로그래머스 - 최대공약수와 최소공배수 최대공약수와 최소공배수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 구해야 하는 것 # 최대 공약수와 최소 공배수 2. 1을 구하기 위해 필요한 것 # n, m의 공약수와 공배수들 3. 그 외 고려사항 # n이 m의 약수 또는 m이 n의 약수일때, 즉시 n,m을 반환 # n과 m 이 모두 소수면 공약수는 n*m # 그 외에는 n*m을 최대 공약수로 나눠주면? 최소공배수 # 유클리드 호제법? 최대 공약수 구하기 n과 m중 더 큰 수부터 1까지 1씩 줄여가면서 n과 m 둘다 나눠지는 수가 나오면 answer 리스트에 append하고 for문 종료 최소.. 2023. 5. 4.
20230503 TIL - 알고리즘, 공식문서 읽기 1️⃣ 알고리즘 [알고리즘] 프로그래머스 - 최소직사각형 [알고리즘] 프로그래머스 - 둘만의 암호 2️⃣ 공식문서 읽기 Django 공식문서 읽기 - Customizing authentication in Django(4) 2023. 5. 3.
Django 공식문서 읽기 - Customizing authentication in Django(4) Custom permissions 맞춤 권한 설정을 위해 permissions 모델의 Meta 속성을 사용 class Task(models.Model): ... class Meta: permissions = [ ("change_task_status", "Can change the status of tasks"), ("close_task", "Can remove a task by setting its status as closed"), ] 이것의 역할은 migrate를 할 때 추가적인 권한을 실행하는 것. 여기서 추가한 권한은 has_perm() 메소드를 통해 검사할 수 있다. user.has_perm("app.close_task") Extending the existing User model User 모.. 2023. 5. 3.
[알고리즘] 프로그래머스 - 둘만의 암호 둘만의 암호 alpha = [ord(i) for i in s] # 처음 문자열(s)를 아스키 코드로 변환한 문자열들의 리스트 index_board = [i for i in range(97, 123)] # 문자열의 아스키 코드 범위 skip_list = [ord(i) for i in skip] # 스킵할 문자열(skip)을 아스키 코드로 변환한 문자열들의 리스트 index_board 에서 skip_list 의 원소들을 삭제 후 alpha 의 각각의 원소들을 index_board 에서 찾아서 원래 인덱스 + index만큼 해준 뒤 새로운 리스트에 추가 이때 만약 index_board 의 범위를 넘어갈 경우 IndexError가 발생할 것이므로 try - except를 사용해서 해당 경우에 index_boar.. 2023. 5. 3.
[알고리즘] 프로그래머스 - 최소직사각형 최소 직사각형 # sizes 원소들을 정렬해서 첫번째가 큰수가 오게 하기 # 1. 각각의 원소별로 sort하고, for문으로 sizes를 돌면서 큰값을 찾는 방법 # 2. max()와 min()으로 각각 리스트를 만드는 방법 # 구한 리스트로 max(가로) * max(세로) def solution(sizes): a = [max(size) for size in sizes] b = [min(size) for size in sizes] return max(a) * max(b) 2023. 5. 3.
20230502 TIL - 알고리즘, AWS 강의 듣기 1️⃣ 알고리즘 콜라 문제 삼총사 선발대 과제 - 파스칼의 삼각형 2️⃣ AWS 강의(추가 예정) 2023. 5. 2.
[알고리즘] NBC 선발대 과제 - 파스칼의 삼각형 ''' line1 = [1] line2 = [1, 1] line3 = [1, 2, 1] line4 = [1, 3, 3, 1] line5 = [1, 4, 6, 4, 1] line6 = [1, 5, 10, 10, 5, 1] n = n번째 줄 n번째 줄의 원소의 개수도 n ''' n번째 라인의 i번째 원소 > n-1번째 파스칼[i-1] + n-1번째 파스칼[i] 예상했던 문제점 : 그럼 인덱스가 모자라면, indexerror? > try except로 [1]을 배열에 추가하면? 막상 해보니 초기값을 줘서 IndexError자체가 발생하지 않음. 그냥 마지막에 [1] 만 추가해주면 된다. [1] + [구해야 하는 부분] + [1]이므로 구해야 하는 부분은 n-2개 > range를 하나 적게 처음 1은 배열에 초.. 2023. 5. 2.