일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- leetcode 풀기
- python 릿코드
- 파이썬알고리즘
- 파이썬 알고리즘
- python zip_longest
- leetcode풀기
- python sorted
- 릿코드
- 파이썬알고리즘풀기
- python Leetcode
- 릿코드풀기
- 릿코드 파이썬
- python 알고리즘
- 파이썬릿코드풀기
- 릿코드풀이
- leetcode풀이
- 잇츠디모
- python xor
- binary search
- 파이썬 알고리즘 풀기
- 파이썬 프로그래머스
- 알고리즘풀기
- 코틀린기초
- 상가수익률계산기
- 파이썬릿코드
- 파이썬 릿코드
- 릿코드 풀기
- 알고리즘풀이
- python priority queue
- LeetCode
- Today
- Total
목록전체 글 (273)
소프트웨어에 대한 모든 것

else 키워드를 for 문과 함께 사용할 수 있습니다. for loop가 정상적으로 종료되면 else 절이 실행이 됩니다. 정상적인 종료라는 의미는 for 문이 break 구문을 만나지 않았다는 것을 의미 합니다. for i in range(5): print(i) else: print('completed for clause') for 문을 사용하다보면. for 문이 break 문을 통해서 강제 종료 되었는지 아닌지 확인할 필요가 있습니다. 소수를 구하는 예제 프로그램을 통해서 설명 하겠습니다. 반복문 내에서 % 연산자를 통해서 소수를 체크하는데 중간에 break 문을 만났다는 것은 소수가 아닌 것입니다. 그래서, prime_num 플래그 변수를 하나 둬서 prime_num을 False로 체크하고 bre..

79. Word Search https://leetcode.com/problems/word-search/ Word Search - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제) 솔루션1) 백트래킹 class Solution: def exist(self, board, word): m = len(board) n = len(board[0]) path = set() def bt(row, col, idx): if idx >= len(word): return Tru..

어댑터 패턴 정의 호환성이 없는 기존 클래스의 인터페이스를 변환하여 사용자가 기대하는 인터페이스 형태로 변환시키는 패턴 코드의 재활용성을 증가하고 기존의 코드를 수정하지 않는 장점이 있음 어댑터 패턴 언제 사용? 외부 구성 요소를 기존 시스템에 재사용하고 싶지만 호환되지 않는 경우 애플리케이션이 클라이언트가 기대하는 인터페이스와 호환되지 않는 경우 원본 코드를 수정하지 않고 애플리케이션에서 레거시 코드를 재사용하려는 경우 어댑터 패턴 클래스 다이어그램 어댑터 패턴 활용 기존 시스템에 Fighter 인터페이스가 있고 이를 상속 받은 Warrior 클래스가 있습니다. attack(), defend(), escape() 오퍼레이션을 지원합니다. 외부에서 Wizard(마법사) 클래스는 이미 만들어져 있었습니다...

LRU Cache란? 가장 오랫동안 사용되지 않은 (참조되지 않은) 페이지(데이터)를 교체하는 기법 캐시의 크기는 한정적이기 때문에 자주 사용되는 데이터는 캐시에 남기고, 자주 사용되지 않는 캐시는 삭제해서 제한된 리소스내에서 데이터를 빠르게 접근할 수 있게 합니다. 구현 방법 1) OrderedDict 활용 파이썬에서 OrderedDict 클래스를 제공합니다. OrderedDict는 사전(해시) 자료구조인데 데이터를 삽입한 순서를 보장합니다. 이러한 OrderedDict 클래스의 특징을 이용해 LRU Cache를 구현할 수 있습니다. from collections import OrderedDict class LRUCache: def __init__(self, capacity): # 최대 캐시 크기 se..

파이썬도 열거형 enum을 지원합니다. 열거형(enumeration)은 고유한 상수값에 연결된 기호 이름의 집합니다. 열거형은 상수를 나타내는 데 보통 사용되기 때문에 열거형 멤버에 대핸 대문자로 사용하는 것을 지향합니다. Enum형 만들기 from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 print(type(Color.GREEN)) print(Color.GREEN) print(Color.GREEN.name) 출력 Color.GREEN GREEN Enum형 반복하기(이터레이션 지원) 열거형은 정의 순서로 이터레이션을 지원합니다. from enum import Enum class Color(Enum): RED = 1 GREEN = 2 ..

플라이웨이트 패턴 정의 동일하거나 유사한 객체들 사이에 가능한 많은 데이터를 서로 공유하여 메모리 사용량을 최소화하는 패턴 공유되는 많은 객체의 수를 줄여서 메모리 사용량을 줄여주는 패턴 특정 클래스의 인스턴스 한 개만 가지고 여러 개의 가상 인스턴스를 제공 플라이웨이트 패턴은 객체를 공유하는 방식으로 객체를 구성해서 메모리 사용량을 줄이는 패턴입니다. 플라이웨이트 패턴은 현업에서 개발을 하면 자기도 모르게 쓰고 있을 패턴입니다. 중복적인 객체가 있고 메모리 사용량이 많으면 하나만 생성해서 공유해서 사용하도록 디자인 해소 부지불식간에 플라이웨이트 패턴을 적용 했을 것이지요. 플라이웨이트 패턴 클래스 다이어그램 플라이웨이트 패턴은 여러 다양한 방법으로 활용되어 구현될 수 있기 때문에 아래의 한 가지 클래스..

본 글은 Software architects: 12 hard and soft skills needed to become a leader를 기반으로 작성되었습니다. Software Architect는 무엇인가? 소프트웨어 아키텍처는 높은 수준의 설계를 디자인하고 기술 표준을 구성합니다. 여기에는 소프트웨어 tools, 소프트웨어 코딩 표준 또는 플랫폼이 포함될 수 있습니다. 효과적인 의사결정을 내리기 위해서는 소프트웨어 아키텍처 폭 넓고 깊이 있는 기술 지식이 필요합니다. 그들은 또한 프로젝트와 사람을 관리할 수 있는 소프트 스킬이 있어야 합니다. Software Archtect: 필요한 hard 스킬 프로젝트마다 다른 기술 지식이 필요하기 때문에 모든 상황에 적용 가능한 정의를 내릴 수 없습니다. 그렇지..

101. Symmetric Tree https://leetcode.com/problems/symmetric-tree/ Symmetric Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제) 솔루션1) iterative 스태과 큐 두 개의 자료 구조를 준비 BFS를 적용하여 트리의 한 depth를 queue 자료 구조에 넣고 queue를 전체 pop해서 stack에 node를 추가 stack의 node의 value를 가운데를 기준으로 잘라서 대칭이 되..