문제설명 해결코드 단순 구현 문제이지만, 가독성 있게 짜보려고 고생을 좀 했습니다. 코드는 역시 단순하면서 가독성이 좋게 보는 것이 가장 좋은 코드라고 생각합니다. def solution(cards1, cards2, goal): for g in goal: if len(cards1) > 0 and g == cards1[0]: cards1.pop(0) elif len(cards2) > 0 and g == cards2[0]: cards2.pop(0) else: return "No" return "Yes"
문제설명 해결코드 프로그래머스 1단계에 해당하는 문제이다. 솔직히 문제 자체는 어렵지 않은데 테스트 케이스가 별로 없어서 약간 중의적인 해석이 가능했던 문제라 아마도 정답률이 적은거 같다. def solution(s, skip, index): abc = [chr(i) for i in range(97, 123) if not chr(i) in skip] * 3 answer = '' for i in s: answer += abc[abc.index(i) + index] return answer 코드해설 코드 해설은 입출력 예제 1번을 통해 진행하도록 하겠습니다. 풀이설명1 # 풀이설명1 : ASCII 코드로 알파벳 배열 만들기. 단 skip에 들어가는 글자는 제외 abc = [chr(i) for i in ran..
문제설명 해결코드 그리디를 사용해서 구현하였다. 문제에 주어진 book_time의 길이 즉 예약이 1000개 이하기 때문에 O(n2)으로 풀어도 된다는 것을 감안하고 접근하였다. def solution(book_time): # 풀이설명1 : 함수 만들기 def change_min(str_time: str) -> int: return int(str_time[0:2]) * 60 + int(str_time[3:]) #풀이 설명2 : 예약 시간이 빠른 순으로 정렬하기 book_times = sorted([[change_min(i[0]), change_min(i[1]) + 10] for i in book_time]) #풀이 설명3 : 방 배정하기 rooms = [] for book_time in book_time..
@cache_page from django.views.decorators.cache import cache_page ''' 접속하는 모든 유저들에게 같은 응답을 해야된다면, 응답을 캐싱하면 보다 빠르게 가능합니다. 캐싱은 settings 설정을 통해 다양한 백엔드를 지원합니다.(메모리, 파일, redis, DB 등등) 다음 예시는 캐싱을 60초 * 15 즉 15분 간의 캐싱을 지원합니다. ''' @cache_page(60 * 15) def my_view(request): pass @login_required from django.contrib.auth.decorators import login_required ''' 로그인 여부를 보장해주는 데코레이터 입니다. 로그인이 되어있지 않다면, 로그인페이지로 이..
Black이란? 개발자들간 코드 스타일의 통일은 매우 중요합니다. 때문에 코드를 일정하게 통일시켜줄 수 있는 코드 포메터를 사용하기도 합니다. Black은 최근 파이썬 커뮤니티에서 가장 널리 쓰이고 있는 있는 코드 포멧터이며, 기존 코드 포멧터와 달리 Black은 설정의 여지가 거의 없어서 정해놓은 특정 포멧팅 규칙을 그대로 따라야합니다. 이러한 점 때문에 프로젝트에 black formatter을 사용하여 코드 스타일을 다른사람과 일정하게 통일 할 수 있습니다. https://github.com/psf/black Black 설치 블로그 포스팅을 위해 install\_black 폴더 와 파이썬 가상환경(black) 을 만들어 진행 하였습니다. 1. Black 설치하기 pip install black 2. ..
데코레이터란 파이썬 데코레이터의 정의를 찾아보면 다음과 같다 기존함수를 입력 받아서 기능이 추가된 새로운 함수 객체로 만들어 주는 역할을 수행한다. 기능이 추가된 새로운 함수객체? 잘 이해가 되지 않으니 코드로 이해보면 좋다. 코드로 이해하기 def 재관(): print("안녕하세요. 저는 재관이에요.") def 지수(): print("안녕하세요. 저는 지수에요.") def 민지(): print("안녕하세요. 저는 민지에요.") def 정우(): print("안녕하세요. 저는 정우에요.") def 동훈(): print("안녕하세요. 저는 동훈이에요.") 위와 같이 5개의 함수가 정의되어있는 상황에서, 갑자기 각 함수별로 성별까지 추가로 print가 되게 코드를 수정해야 된다면, 데코레이터 없이 아래와 같..
문제 설명 해결 코드 스택을 사용해서 간단하게 해결하였다. 알고리즘을 어느정도 풀다보니, 문제 유형이 눈에 들어오기 시작했다. def solution(numbers): answer = [-1] * len(numbers) stack = [] for i, number in enumerate(numbers): while stack and stack[-1][1] < number: j, _ = stack.pop() answer[j] = number stack.append((i, number)) return answer 코드 해설 입출력 예제 2번을 바탕으로 풀이 진행 하였습니다. 메인 로직 1 # numbers = [9, 1, 5, 3, 6, 2] def solution(numbers): answer = [-1]..
왜? AWS에 실습 서버를 만드나요? 보통은 백엔드 infra는 리눅스 기반인 ubuntu, 또는 centOS 운영체제로 사용한다. 물론 위와 같은 운영체제를 가상머신으로 mac에다 설치해 둘수 있으나, 솔직히 mac에 오류나면서 깔기도 싫고, virtualmachine 쓰면 트러블 튜팅도 해야되서 클라우드도 배우는겸, AWS에 서버를 구축해보려고 한다. Amazon Web Service(AWS) 아마존은 신규 가입하면 1년동안 freetire라고 무료로 제공해준다. (모든 서비스가 공짜는 아니고, 휴대폰이랑 비교하자면 요즘같은 5G 시대에서 3G 정도로 1년 쓸수 있게 해주는 정도(?)로 생각하면 이해하기 좋다.) https://aws.amazon.com/ko 클라우드 서비스 | 클라우드 컴퓨팅 솔루션..