본문 바로가기

728x90
반응형

분류 전체보기

(340)
[Design Pattern] Strategy Pattern 이 글은 헤드퍼스트 디자인 패턴을 읽고 필자의 방식으로 이해하고 정리한 내용입니다. 개요 Strategy Pattern은 Design Pattern 중 행위(Behavior)에 속하는 패턴이며 정의하자면 다음과 같다. 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘 군을 수정해서 쓸 수 있게 해 줍니다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다. (헤드퍼스트 디자인 패턴, 64p) 상속은 무엇이 문제일까? "알고리즘을 군을 정의하고 캡슐화해서 각각의 알고리즘 군을 수정해서 쓴다"라는 건 Super Class에 Method를 정의하고 이를 상속받는 Sub Class가 이를 Overrding으로 재사용한다는 측면에서 다를 바 없어 보인다. 만약 Sub Class..
[Programmers] 다음 큰 숫자. Description 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. Solve def solution(n): bit_of_n = bin(n) bit_of_n_count_1 = bit_of_n.count('..
[Programmers] 올바른 괄호 Description 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. Solve def solution(s): answer = True stack = list() open_bracket = '(' for x in s: if x == open_bracket: stack.append(x) else: if sta..
datetime과 시간대 HTML 삽입 미리보기할 수 없는 소스 DateTime datetime은 날짜와 시간 정보를 함께 저장하는 클래스이다. 현재시간을 나타내는 datetime.now() 메서드를 통해 알아보자. from datetime import datetime ct = datetime.now() print(ct) # Output # 2023-01-15 13:27:40.177895 날짜 정보와 시간 정보를 접근할 수 있는 속성을 가진다. 날짜 정보는 year, month, day 시간 정보는 time, second, microsecond이다. print(ct.year, ct.month, ct.day) # 2023 1 15 print(ct.minute, ct.second, ct.microsecond) # 27 40 1778..
Android에서 Http 트래픽 관찰하기 - 1 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요크롤링이라는 단어를 별로 좋아하진 않습니다만 크롤링이 이제 단순히 웹의 정보를 긁어오는 분야만은 아닌 듯합니다. 조금 더 거시적인 관점에서 크롤링은 “정보 수집 기술” 정도로 바라봐도 괜찮다는 생각이 듭니다.현대적인 웹 사이트는 동적으로 페이지가 변경될 뿐만 아니라 어떤 사이트는 Network 탭을 통해 볼 수 있는 API 정보도 나타나지 않는 경우가 있습니다. 또한 모바일 앱으로만 제공되는 서비스도 존재하기에 크롤링의 난이도가 점점 올라가고 있습니다. 웹의 경우엔 크롤링을 어떻게 하는지 조금만 검색해도 그 방법이 나오지만 모바일 앱은 그렇지 않습니다.이 글은 Android에서 발생하는 HTTP Request을 로컬 P..
[Programmers] 최댓값과 최솟값 Description 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최솟값과 최댓값을 찾아 이를 "(최솟값) (최댓값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. Solve 리스트가 아닌 문자열로 이루어진 숫자의 나열을 입력받아 최솟값과 최대값을 구하는 문제이다. 01. MIN, MAX 함수 이용하기 처음엔 min, max 함수를 이용한 다음 방식으로 풀었다. def solution(s): split_of_space = [int(x) for x in s.spli..
Python Recursive Snippet Code 하향식 카운팅 def count_down(n): """ 10부터 1로 감소하는 재귀함수 """ print(n) if n == 1: return returncount_down(n - 1) 상향식 카운팅 def count_up(n): """ 1부터 10까지 증가하는 재귀함수 """ print(n) if n == 10: return return count_up(n + 1) 배열의 요소를 제곱하는 재귀함수 def double_array(array, index): """배열의 요소를 제곱하는 재귀함수 """ if index == len(array): return array array[index] *= 2 return double_array(array, index + 1) array = [1, 2, 3, 4, 5]..
[AWS] App Runner를 사용해보자. AWS App Runner를 사용하면 컨테이너나 인프라를 배포하고 관리하는 경험이 없는 팀에서 조차도 작성된 언어에 관계없이 웹 앱과 API를 클라우드에 쉽게 배포할 수 있습니다. 이 서비스에는 AWS 운영 및 보안 모범 사례가 내장되어 있으며, 즉시 자동 확장 또는 축소되므로 완전 시작을 걱정할 필요가 없습니다. ... https://aws.amazon.com/ko/blogs/korea/app-runner-from-code-to-scalable-secure-web-apps/ HTML 삽입 미리보기할 수 없는 소스 개요 재미난 주제 없나 하고 구글링 하던 중 AWS App Runner에 대해 접하게 되었습니다. 과거 ECS에서 Fargate랑 EC2를 이용해 컨테이너를 올려봤던 게 생각났는데 인용문에서도..

728x90
반응형