본문 바로가기

분류 전체보기30

웹사이트 모바일 하단 스크롤 시, 브라우저 하단 네비 사라지도록 1. index.html 에서 meta 태그의 name="viewport"에 옵션을 다음과 같이 준다. ... 2. css 에서 다음 부분 체크2.1. min-height: 100vh; overscroll-behavior-y: contain;.dashboardContainer { display: flex; flex-direction: column; min-height: 100vh; background-color: var(--bg-dark, #121212); color: var(--text-primary, #ffffff); overscroll-behavior-y: contain;}2.2. overflow:auto; -webkit-overflow-scrolling: touch;.. 2025. 4. 5.
SQL 암기 사항 정리 1. DATE_FORMAT( 특정 열, ' 옵션 ' )형식설명예시 (2025-03-31 15:45:12 기준)%Y4자리 연도2025%y2자리 연도25%m2자리 월 (01~12)03%d2자리 일 (01~31)31%W요일 (영어, 전체)Monday%a요일 (영어, 축약)Mon%w요일 (숫자, 0=일요일~6=토요일)1%h12시간제 시 (01~12)03%I12시간제 시 (01~12)03%pAM/PM 표시PM%i분 (00~59)45%S초 (00~59)12%f마이크로초 (000000~999999) %H24시간제 시 (00~23)15사용 예시출력 결과 (2025-03-31 15:45:12)DATE_FORMAT(NOW(), '%Y-%m-%d')2025-03-31DATE_FORMAT(NOW(), '%W, %M %d, %.. 2025. 3. 31.
백준, SW역량테스트 입출력 시 기억할 점 1. input().split() 으로 입력을 받을 경우 시간이 오래 걸림https://www.acmicpc.net/problem/28278입력을 받을때 sys 라이브러리의 sys.stdin.readline()을 사용해야 시간을 줄일 수 있다.** 24년도 삼성 코딩테스트에서는 sys.stdin.readline()을 쓰지 못하고 input()으로 입력을 받도록 되었음import sysn = int(sys.stdin.readline())orders=[]for _ in range(n): orders.append(list(map(int, sys.stdin.readline().split())))stack = []for order in orders: if len(orde.. 2024. 4. 10.
최소 신장 트리 (MST) 1. 크러스컬 알고리즘 구현 - Union, Find 함수 구현하여 활용 https://school.programmers.co.kr/learn/courses/30/lessons/42861 # MST 최소 신장 트리 문제 def find(parent, x): # 루트 노드를 찾는 함수 if parent[x] != x: parent[x] = find(parent, parent[x]) return parent[x] def union(parent, a, b): # 두 서브트리를 합치는 함수 a = find(parent, a) b = find(parent, b) print(f"합치기 전: {parent}") # 합치기 전 상태 출력 if a < b: parent[b] = a else: parent[a] = b p.. 2024. 4. 9.
그래프 1. 노드, 간선에 대한 정보가 주어질 때, 트리(graph) 형식으로 구성하는 예제 + DFS https://school.programmers.co.kr/learn/courses/30/lessons/86971 def solution(n, wires): def dfs(graph, start, visited): count = 1 visited[start] = True for i in graph[start]: if not visited[i]: count += dfs(graph, i, visited) return count # 그래프를 구성하는 방법! graph = [[] for _ in range(n+1)] # n+1인 이유는, 노드 번호와 인덱스의 번호를 맞추기 위해서 for v1, v2 in wires:.. 2024. 4. 8.
기억해둘 구현 방식 1. https://school.programmers.co.kr/learn/courses/30/lessons/42579 - enumerate와 zip을 같이 사용하는 방식 - 딕셔너리에서 키 하나 값에 리스트로 요소를 하나씩 추가하는 방식 - 딕셔너리를 반복문 돌려서 새로운 딕셔너리를 만들 때, items() 활용 # genre_rank 부분 - 튜플 값을 반복문 돌려서 원하는 값을 얻어내는 방식 # sum 부분 - 딕셔너리를 - 딕셔너리에서 원하는 기준으로 정렬할 때, sorted(), dict.keys(), lambda 사용하는 방식 => 기준대로 정렬한 리스트 출력 genre_play_dict = {} for i, (genre, play) in enumerate(zip(genres, plays)):.. 2024. 4. 6.
순열, 조합 1. 순열 Permutations - 완전탐색 (모든 경우의 수를 고려해볼 때, 순열을 활용한다) from itertools import permutations arr = ['A','B','C'] arr_string = 'ABC' nPr = permutations(arr, 2) #인자로 리스트를 넣어도 되고 nPr_str = permutations(arr_string, 2) #인자로 문자열을 넣어도 된다. print(list(nPr)) # [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] print(list(nPr_str)) # [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C',.. 2024. 4. 5.
기억해둘 수학적 개념 1. 소수 판별 - 숫자의 제곱근을 활용한다면 시간복잡도가 O(N)에서 O(N^1/2)로 줄어듬 import math def is_prime_number(num): for i in range(2, int(math.sqrt(num))+1): if num % i == 0: return 0 return 1 2024. 4. 5.
Queue FIFO(First In First Out) 기반의 자료구조 데이터를 추가한 순서대로 제거할 수 있기 때문에 비동기 메세징(asynchronous messaging), 스트리밍(streaming), 너비 우선 탐색(breath first search) 등에서 널리 응용 1. list를 활용한 Queue -> 데이터 삽입, 삭제 시 O(1), 무작위 접근 시 O(n) >>> queue = [4, 5, 6] >>> queue.append(7) >>> queue.append(8) >>> queue [4, 5, 6, 7, 8] >>> queue.pop(0) 4 >>> queue.pop(0) 5 >>> queue [6, 7, 8] # 방향을 반대로 하려면 >>> queue = [4, 5, 6] >>> queue... 2024. 4. 5.
dfs,bfs 풀이 방법 DFS : 깊이 우선 탐색 -> 1번 노드를 확인하면 바로 2번노드, 3번노드 ...순으로 확인 BFS : 너비 우선 탐색 -> 1번 노드의 모든 경우 확인 후, 2번 노드의 모든 경우 확인 후 ... 문제에서 N(노드), M(간선), V(출발점)과 간선정보가 주어질경우 해당 정보를 가공하는 방법은 graph, visited 리스트처럼 만들어서 가공 후 활용 https://www.youtube.com/watch?v=d3R1s_OmwAk import sys def dfs(idx): global visited visited[idx] = True print(idx, end=' ') for next in range(1, N+1): if not visited[next] and graph[idx][next]: df.. 2024. 4. 5.