[Python] Dependency Injector (1)
·
Language/Python
의존성 주입 패턴(Dependency Injection Pattern)은 일반적으로 객체 생성 시, 해당 객체가 의존하는 다른 객체를 직접 생성하는 것이 아니라 외부에서 주입받도록 하는 방법이다. 이를 통해 객체 간의 결합도가 낮아지기 때문에, 유지보수 및 코드 재사용성이 높일 수 있다. Dependency Injector는 Python에서 의존성 주입 패턴을 구현할 수 있게 도와주는 라이브러리 중 하나이다. 이를 사용해 객체 간의 결합도를 낮추고, 코드의 유연성과 확장성을 높일 수 있다. 처음에는 이런 개념이 잘 와닿지 않았다. 이러한 Dependency Injector의 개념과 기능들을 코드 예시와 함께 설명하면 좀 더 쉽게 이해할 수 있다. class Database: def __init__(sel..
[프로그래머스] 카드뭉치
·
PS/프로그래머스
카드뭉치 문제 설명 def solution(cards1: List[str], cards2: List[str], goal: List[str]) -> str: ... 영단어로 이루어진 두 배열 cards1과 cards2 를 번갈아가며 연속된 카드를 뽑아 goal 을 만들 수 있는지 여부를 반환하면 된다. 제한사항 1 ≤ cards1의 길이, cards2의 길이 ≤ 10 1 ≤ cards1[i]의 길이, cards2[i]의 길이 ≤ 10 cards1과 cards2에는 서로 다른 단어만 존재합니다. 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이 1 ≤ goal[i]의 길이 ≤ 10 goal의 원소는 cards1과 cards2의 원소들로만 이루어져 있습니다. cards1, cards2, g..
[프로그래머스] 인사고과
·
PS/프로그래머스
프로그래머스 - 인사고과 문제설명 def solution(scores: List[List[int]]) -> int: ... scores result [[2,2],[1,4],[3,2],[3,2],[2,1]] 4 사원들의 태도 점수와 평가 점수가 [[2,2],[1,4],[3,2],[3,2],[2,1]] 처럼 한 쌍의 정수로 이루어진 배열로 입력된다. 임의의 사원보다 두 점수가 모두 낮은 경우가 있으면 그 사원은 제외된다. 사원들의 총점을 순서대로 나열할 때 scores[0]인 사원의 석차를 구하는 문제이다. 제한사항 1 ≤ scores의 길이 ≤ 100,000 scores의 각 행은 한 사원의 근무 태도 점수와 동료 평가 점수를 나타내며 [a, b] 형태입니다. scores[0]은 완호의 점수입니다. 0 ≤..
[프로그래머스] 시소 짝궁
·
PS/프로그래머스
코딩테스트 연습 - 시소 짝궁 문제 설명 def solution(weights: List[int]) -> int: ... 2(m), 3(m), 4(m) 거리의 지점에 좌석이 있는 시소가 평형이 되는 쌍의 갯수를 구하는 문제이다. solution 함수의 인자에 사람들의 몸무게 목록이 주어진다. 제한사항 2 ≤ weights의 길이 ≤ 100,000 100 ≤ weights[i] ≤ 1,000 몸무게 단위는 N(뉴턴)으로 주어집니다. 몸무게는 모두 정수입니다. 풀이 시소가 평형을 이루는지 확인하려면 두 사람의 무게와 각 좌석의 거리의 곱이 같은지 확인하면 된다. 이를 응용해서 몸무게1 / 몸무게2 == 거리2 / 거리1로 비율을 확인하면 된다. 문제에서 주어진 좌석의 거리는 2, 3, 4이다. 입력으로 주어..
[NUXT] loading component
·
Language/NUXT
페이지를 불러오거나 서버 요청을 보낼 때 대기 시간이 발생한다. 이 때 화면이 정지해있으면 사용자는 페이지가 정지한 것인지 동작중인지 알 수 없다. 로딩 페이지를 표시해 작업이 진행중이라는 것을 표시해줘야한다. NUXT에서는 간단하게 로딩창을 만들 수 있다. 먼저 로딩을 표시하기 위한 컴포넌트를 작성한다. // @/components/loading.vue Loading... // @/components/loading.vue nuxt.config.js을 열고 loading 속성에 작성했던 loading.vue 컴포넌트를 추가한다. // nuxt.config.js export default { // ... loading: '@/components/loading.vue' } 필요한 부분에서 $n..
[NUXT3] 500 window is not defined
·
Language/NUXT
NUXT3에서 apexcharts.js 라이브러리를 사용하다 에러가 발생했다. 500 window is not defined at Object. (.../apexcharts.common.js:6:371062) at Module._compile (node:internal/modules/cjs/loader:1105:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (..
[프로그래머스] 뒤에 있는 큰 수 찾기
·
PS/프로그래머스
코딩테스트 연습 - 뒤에 있는 큰 수 찾기 문제 설명 def solution(numbers: list) -> list: ... 정수로 이루어진 배열 numbers가 주어진다. 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 한다. numbers에서 각 원소의 뒷 큰수를 담은 배열을 구하는 문제이다. 만약 뒷 큰수가 존재하지 않으면 -1을 넣는다. 제한사항 4 ≤ numbers의 길이 ≤ 1,000,000 1 ≤ numbers[i] ≤ 1,000,000 풀이 복잡하게 풀려고 시도했지만 생각보다 간단한 방법으로 해결할 수 있었다. 접근 방법은 numbers 배열을 순회하며 숫자를 스택에 저장하고 스택에 담긴 숫자들의 뒷 큰수를 갱신하는 식으로 해결했다. ..
[프로그래머스] 크기가 작은 부분 문자열
·
PS/프로그래머스
링크 문제 설명 입력으로 숫자로 이루어진 문자열 t와 p가 주어진다. t에서 p와 같은 길이의 부분 문자열들 중 p 보다 작은 수의 갯수를 구하는 문제이다. 제한사항 def solution(t: str, p: str) -> int: ... 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다. 풀이 제한사항도 단순한 문제이다. 길이가 len(p)인 부분 문자열을 모두 구해 비교하면 된다. 제출 코드 def solution(t: str, p: str) -> int: return len([True for i in range(len(t) - len(p) + 1) if t[i:i + len(p)]