목록PROGRAMMING::LANGUAGE (60)
Love Every Moment
1. 풀(Pool) 이미 사용할 준비가 된 자원을 메모리 위에 일정량 미리 생성해둔 자원의 집합 자원이 필요한 경우 새로 자원을 생성하는 대신 풀에서 꺼내어 사용 자원 사용을 완료한 경우 자원을 해제하는 대신 풀에 다시 반환 자원의 생성과 파괴에 드는 비용, 즉 오버헤드(Overhead)를 줄여준다는 장점이 있다 2. 쓰레드 풀(Thread Pool) 미리 쓰레드들을 생성해두었다가 작업 요청이 들어올 때마다 미리 생성된 쓰레드로 작업을 처리 작업이 끝난 쓰레드는 종료되지 않고 다음 작업 요청을 기다린다 쓰레드들을 풀에 생성 → 작업들을 태스크 큐(Task Queue)에 추가 → 쓰레드 별로 작업을 할당하여 처리 3. 쓰레드 풀의 생성 java.util.concurrent 패키지의 Executors 클래스..
1. 해시(Hash) 함수 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 해시테이블과 해시맵은 각각의 Key 값에 해시함수를 적용해 배열의 고유한 index를 생성하고, 해당 index를 활용해 값을 저장하거나 검색하기 때문에 O(1) 의 빠른 검색 속도를 보인다 2. HashMap/HashTable 맵(Map)이란 키(Key)와 값(Value) 두 쌍으로 데이터를 보관하는 자료구조 해시맵과 해시테이블 모두 두 개의 객체를 키와 값의 한 쌍으로 묶어 보관하는 자료구조 둘의 차이는 thread safe 한가 아닌가에 있다 해시맵은 thread safe 하지 않고 해시테이블은 thread safe 하다 Java Platform SE 8 docs.oracle.com [JAVA] HashTable..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def dfs(start, visited, computers): # 현재 노드 방문 visited[start] = True for i, connected in enumerate(computers[start]): # 자기자신이 아니면서 아직 방문하지 않은 인접 노드 방문 if i != start and connected == 1 and visited[i] == False: dfs(i, visited, computers) return visited def solution(n, computers): an..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 from collections import deque def solution(maps): answer = 0 n, m = len(maps), len(maps[0]) queue = deque() queue.append((0, 0)) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] while queue: x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if nx = n or ny < ..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(clothes): answer = 1 di = dict() for c in clothes: di[c[1]] = di.get(c[1], 0) + 1 for key, value in zip(di.keys(), di.values()): answer *= value + 1 answer -= 1 return answer 해시테이블을 이용하여 풀면 간단해지는 문제 파이썬에서는 딕셔너리를 통해 해시테이블 이용 가능 의상의 종류를 딕셔너리의 key 로 두고, 새로운 의상의 이름이 나올 때마..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(n, s, a, b, fares): answer = 0 INF = n * 100000 + 1 # 모든 노드 무한으로 초기화 cost = [[INF] * n for _ in range(n)] # 자기자신->자기자신 비용 0원 for i in range(n): cost[i][i] = 0 # 인접한 노드들간의 비용 적용 for fare in fares: start = fare[0] - 1 finish = fare[1] - 1 price = fare[2] cost[start][fin..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 정수가 담긴 리스트 num_list 가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을, 10 이하이면 모든 원소의 곱을 return 하도록 solution 함수를 완성해주세요. 단, 2 ≤ num_list의 길이 ≤ 20 1 ≤ num_list의 원소 ≤ 9 예제 num_list result [3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51 [2, 3, 4, 5] 120 풀이(1) from math import prod def solution(..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해주세요. 단, a ⊕ b와 b ⊕ a 가 같다면 a ⊕ b 를 return 합니다. 예제 abresult 991991 898898 풀이(1) def solution(a, b): strings = list(map(str, [a, b]..