TIL(Today I Learned)
-
1월 31일 TIL - 프로그래머스 대충 만든 자판🔤TIL(Today I Learned) 2024. 1. 31. 16:47
# https://school.programmers.co.kr/learn/courses/30/lessons/160586 # 대충 만든 자판 # 문제 설명 # 휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다. # 예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다. # 같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 키를 눌렀을 때 입력되는..
-
1월 24일 TIL - 프로그래머스 다트 게임🎯TIL(Today I Learned) 2024. 1. 24. 21:33
# https://school.programmers.co.kr/learn/courses/30/lessons/17682 # [1차] 다트 게임 # 문제 설명 # 다트 게임은 총 3번의 기회로 구성된다. # 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. # 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. # 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수와 바로 전에 얻은 점수를 각 2배로 만든다. 아차상(#) 당첨 시 해당 점수는 마이너스된다. # 스타상(*)은 첫 번째 기회에서도 나올 수 있다. 이 경우 첫 번째 스타상(*)..
-
1월 11일 TIL - reduce를 이용하여 리스트 원소들의 곱 구하기TIL(Today I Learned) 2024. 1. 11. 21:34
리스트의 모든 원소들의 곱을 구할 땐 기본적으로 for문을 이용해서 하나씩 곱해주는 방식으로 구현할 수 있다. # 리스트 모든 원소들의 곱을 구하는 법 num_list = [3, 4, 5, 2, 1] # 기본적인 구현 def multiply(num_list): ans = 1 for n in num_list: if n == 0: return 0 ans *= n return ans 이 외에도 reduce를 이용하여 곱을 구할 수 있다. reduce를 알려면 fold라는 개념을 알아야한다. 함수형 프로그래밍(functional programming)에는 fold라는 개념이 있다. fold는 재귀적인 자료구조를 원소들을 반복적으로 처리해 하나의 결과값으로 반환하는 기능이다. 파이썬에서는 이 기능을 functoo..
-
1월 5일 TIL - 프로그래머스 소수 만들기TIL(Today I Learned) 2024. 1. 5. 16:20
# https://school.programmers.co.kr/learn/courses/30/lessons/12977 # 소수 만들기 # 문제 설명 # 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. # 제한사항 # nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. # nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 🧐 문제 정리 1. 먼저 주어진 리스트에서 3개를 뽑아 더한다. 2. 더한 값이 소수인지 판별한..
-
7월 7일 TIL - 캐시 사용하기TIL(Today I Learned) 2023. 7. 7. 17:53
▷ 오늘의 배움 💬 캐시란? 데이터나 계산 결과 등을 미리 저장해 두어서, 이후에 동일한 작업을 할 때 더 빠르게 처리할 수 있도록 해 준다. 📖 캐싱을 구현하는 방법들 1. The per-site cache (사이트별 캐시) # update 미들웨어는 리스트의 첫번째에 있어야 한다. fetch 미들웨어는 마지막에 있어야 한다. MIDDLEWARE = [ ... 'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware', ... ] 2.The per-view cache (뷰별 캐시) - view에서 리턴하는..
-
7월 6일 TIL - REST framework JSONRendererTIL(Today I Learned) 2023. 7. 7. 11:07
▷ 오늘의 시도 ⚠️ 전과 같이 innerHTML로 프론트에 데이터를 넣다보니 html 코드 입력시 그대로 작동하는 경우가 있어서 수정 필요 👉 innerText 형식으로 데이터 내용 추가 -> 마이페이지 작업 중 댓글과 북마크에서 글 작성자가 request.user로 나타나는 오류 발생 👉 백에서 시리얼라이저 수정 후 정상적으로 보이게 수정 ❗️백 서버에서 rest-framework 문서형식이 그대로 노출 -> 무한 요청을 보내는 등 악용될 가능성이 높아진다. 👉 settings.py에서 rest framework 설정 수정 -> json 형식으로 데이터가 보여짐 REST_FRAMEWORK = { # 추가 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework.renderer..
-
7월 5일 TIL - 오랜만에 백준 풀기TIL(Today I Learned) 2023. 7. 5. 21:18
▷ 오늘의 배움 # 2차원 배열 출력 for i in range(T): # map(실행함수, 리스트 등 순환가능한 배열) print(' '.join(map(str, result_list[i]))) ▷ 오늘의 시도 💬 거스름돈 각각 몇개를 돌려줄 수 있는가?! -> 전에 풀었던 개미 군단이 떠오르는 문제이다. 다만 차이점이라면 거스름돈은 각각 몇개씩인가고 개미군단은 합이었다는 차이?! 그래도 풀었던 문제라 그리 어렵게 풀진 않았다. # 손님이 받는 동전의 개수를 최소로 거스름돈을 돌려주는 것! 뭔가 개미군단 문제가 떠오른다. 개미군단은 각 계급의 수를 더한 결과를 원했다면 이건 각각의 값만 도출하면 되는 정도의 차이?! # 쿼터(Quarter, $0.25), 다임(Dime, $0.10), 니켈(Nickel..
-
7월 4일 TIL - 작성자 검색 기능TIL(Today I Learned) 2023. 7. 4. 21:49
▷ 오늘의 시도 # 기본 검색 뷰에 추가 # 글작성자 검색 if option == "user" or option == "all": users = User.objects.filter(user_status='active', nickname__icontains=search) for u in users: article_list = u.article_user.filter(db_status=1).order_by("-created_at") for b in article_list: queryset_list.append(b) 유저 닉네임으로 검색 후 관련 닉네임을 가진 유저들의 아티클을 불러오도록 구성하였다.