목록전체 글 (772)
컴공생의 다이어리
GitKraken 설치 GitKraken은 소스트리(SourceTree), GitHub Desktop과 같은 Git의 GUI 툴이다. 오늘은 깃크라켄 설치방법에 대해 정리하고자 한다. 아래 사이트에 접속해서 자신의 운영체제에 맞는 설치파일을 다운로드 한다. https://www.gitkraken.com/download Download Free Git Client - Windows, Mac, Linux | GitKraken Download the free Git client for Windows, Mac & Linux! GitKraken Git GUI is free for use with public repositories. Join leading companies like Google, Microsoft..
[Network] LAN, WAN, MAN 네트워크는 분산되어 있는 컴퓨터들이 자원을 공유할 수 있게 통신망으로 연결한 것이다. 네트워크의 규모를 기반으로 LAN, WAN, MAN으로 구분된다. LAN(Local Area Network) 근거리 영역 네트워크 학교, 사무실과 같은 가까운 지역을 묶은 네트워크 전송 속도가 빠르고 혼잡하지 않음 MAN(Metropolitan Area Network) 대도시 영역 네트워크 LAN과 LAN이 모여서 만든 통신망 전송 속도는 평균이며 LAN보다는 더 많이 혼잡 WAN(Wide Area Network) 광대역 네트워크 국가 또는 대륙 같은 더 넓은 지역에서 운영 전송 속도는 낮으며 MAN보다 더 혼잡 https://artsandculture.google.com/en..
JPA Auditing Spring Data Jpa에서는 AuditingListener를 제공해 특정한 이벤트에 대해 자동으로 반응하여 등록일, 수정일, 등록자, 수정자와 같은 데이터를 입력해준다. Entity에 대해서 생성된 시간과 업데이트된 시간을 추적하는 것은 매우 중요하지만 이를 매번 사용자가 데이터를 업데이트할 때마다 시간 값을 변경하는 것은 귀찮고 어쩌면 실수로 인해서 놓칠 수도 있다. JPA의 Auditing 기능을 사용해 이러한 점을 해결해줄 수 있다. Auditing 활성화 Auditing 기능을 활성화하기 위해서는 Application에 @EnableJpaAuditing 어노테이션을 추가해줘야 한다. @EnableJpaAuditing// ← 이거 @SpringBootApplication..
백준 1474번 : 밑 줄 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) data = [input().rstrip() for _ in range(n)] default_len, r = divmod(m - sum(map(len, data)), n - 1) result = data[0] for idx in range(1, n): if data[idx][0].islower() and r != 0: r -= 1 result += '_' * (default_len + 1) + data[idx] elif idx + r == n: r -= 1 result += '_' * (default_len + 1) + dat..
백준 1005번 : ACM Craft (문제 바로가기) 내 코드 import sys from collections import defaultdict, deque input = sys.stdin.readline for _ in range(int(input())): n, k = map(int, input().split()) times = list(map(int, input().split())) result = times[::] indegree = [0] * n arr = defaultdict(list) for _ in range(k): a, b = map(int, input().split()) arr[a - 1].append(b - 1) indegree[b - 1] += 1 w = int(input()) -..
백준 1715번 : 카드 정렬하기 (문제 바로가기) 내 코드 import heapq import sys input = sys.stdin.readline n = int(input()) card = [int(input()) for _ in range(n)] heapq.heapify(card) result = 0 while len(card) > 1: a, b = heapq.heappop(card), heapq.heappop(card) result += a + b heapq.heappush(card, a + b) print(result)
백준 1717번 : 집합의 표현 (문제 바로가기) 내 코드 import sys sys.setrecursionlimit(10**8) def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] def union(parent, a, b): a = find_parent(parent, a) b = find_parent(parent, b) if a < b: parent[b] = a else: parent[a] = b input = sys.stdin.readline n, m = map(int, input().split()) parent = [i for i in range(n + 1)] ..
백준 11725번 : 트리의 부모 찾기 (문제 바로가기) 내 코드 DFS 활용 import sys from collections import defaultdict sys.setrecursionlimit(10 ** 8) def dfs(graph, visited, v, result): visited[v] = True for i in graph[v]: if not visited[i]: result[i] = v dfs(graph, visited, i, result) input = sys.stdin.readline n = int(input()) arr = [[] for _ in range(n + 1)] for _ in range(n - 1): a, b = map(int, input().split()) arr[a]..
백준 7662번 : 이중 우선순위 큐 (문제 바로가기) 내 코드 import sys, heapq from collections import defaultdict input = sys.stdin.readline for _ in range(int(input())): max_heap, min_heap = list(), list() visited = defaultdict(bool) for j in range(int(input())): command = list(input().split()) if command[0] == 'I': # 데이터 삽입 heapq.heappush(min_heap, (int(command[1]), j)) heapq.heappush(max_heap, (-int(command[1]), j))..
백준 11286번 : 절댓값 힙 (문제 바로가기) 내 코드 import heapq, sys n = int(input()) heap = [] for _ in range(n): num = int(sys.stdin.readline()) if num == 0: if heap: print(heapq.heappop(heap)[1]) else: print(0) else: heapq.heappush(heap, (abs(num), num))