일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Top-down
- Singleton Pattern
- 그리디
- golang
- 피보나치
- go
- java
- github
- 알고리즘
- 파이썬
- docker
- GKE
- easy
- Python
- BubbleSort
- cpu scheduling
- Backjoon
- k8s
- mobaXTerm
- Programmers
- kubernetes
- KAKAO
- LeetCode
- GCP
- 백준
- Codility
- Observer Pattern
- Dynamic Programming
- Kotlin
- Today
- Total
To Be Developer
Observer Pattern (감시자) 객체지향 프로그래밍에서 객체에 감시자(Observer) 들을 등록을 하여 객체의 상태변화가 발생 하였을 때 자동으로 알리도록 설정하는 패턴 주로 이용되는 곳이 유튜브와 같이 구독자 알림과 같은 곳에서 옵저버 패턴이 적용된다. import abc class Observer(object): __metaclass__ = abc.ABCMeta # 알림 역할을 하는 추상 메서드 @abc.abstractmethod def notify(self, videos): pass # 구독자 알림 class Subscriber(Observer): def __init__(self, subId): self.subId = subId def notify(self, video): print("{..
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net # BackJoon 1003 번 : 피보나치 함수 # 문제에서 제시한 테스트 케이스의 갯수 n = int (input ()) # 테스트 케이스의 값 arr = [int(input()) for x in range(n)] # 테스트 케이스들 중 최대 값 mx = max(arr) # 한 번 구한 피보나치의 값은 계속 사용되므로 한 번 계산한 것은 # 또 다시 계산하지 않도록 저장할 피보나치 배열 fibArr = [None] * (mx+1) # 피보나치 함수 def fib(num): # 피보나치를 계..
https://www.acmicpc.net/problem/15953 15953번: 상금 헌터 첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다. 다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 정수 a(0 ≤ a ≤ 100)와 b(0 ≤ b ≤ 64)가 공백 하나를 사이로 두고 주어진다. www.acmicpc.net [Python 풀이] class KakaoCode(object): # 경우의 수에 따른 상금을 저장해 놓은 stack 변수 stack = [] def __init__(self): # 대회 1의 상금 정보와 인원 수 self.test1 = [ {'rank' : 1, 'prize': 500,..
https://leetcode.com/problems/valid-parentheses/ 불러오는 중입니다... [Python 풀이] class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ # stack 변수 stack = [] # 괄호 정보 딕셔너리 bracket = {'{' : '}', '[' : ']', '(': ')'} # string 을 문자 하나하나 반복한다. for i in s: # i 가 괄호 시작이면 stack 에 추가한다. if i == '{' or i =='[' or i=='(': stack.append(i) # 괄호 끝이면 stack 에서 pop 한다. else: # 딕셔너리 정보에 없으면 retu..
https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파벳 대소문자로 이루어진 문자열이고, 길이는 10자리를 넘지 않는다. www.acmicpc.net [Python 풀이] """ *** 문제 설명 *** input Data로 첫 번째 줄에는 학생들의 수를 받는 Integer를 받는다 학생 수 만큼 줄을 입력을 받는데 ' ' 빈 칸으로 데이터를 나눠서 학생의 정보를 등록을 하는데 첫 번째는 학생이름, 그 다음은 국어..
https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다. www.acmicpc.net # 약수의 개수 count = int(input()) # N의 약수 목록 nums = list(map(int, input().split(' '))) # input Data를 오름차순으로 정렬함 nums.sort() ''' 9의 약수 : [3] 10의 약수 : [5, 2] 16의 약수 : 3, [8, 4, 2] 18의 약수 : [9, 6, 3, 2] 20의 약수 : [10, 5, ..