[React] 왜 React Query를 써야 할까? React Query를 왜 사용할까요?프론트엔드에서 서버 데이터와 상호작용하기 시작하면, 화면이 단순해 보여도 관리해야 하는 요소가 금방 많아져요.로딩 처리, 에러 처리, 캐싱, 중복 요청 방지 등… 이런 것들을 전부 직접 구현하면 코드가 빠르게 복잡해집니다.React Query는 이런 불편함을 상당 부분 자동으로 해결해주는 라이브러리예요.1. API 요청 코드를 간단하게 만들어줘요API를 호출할 때 보통 로딩 상태, 에러 상태, 데이터를 직접 관리해야 하는데요.React Query를 사용하면 아래처럼 한 번에 처리할 수 있습니다.const { data, isLoading, error } = useQuery({ queryKey: ["projects"], queryFn: fetchProjects,});..
[Git] git clone 시 Repository not found 에러 / Authentication failed, 403 에러 해결 GitHub 레포지토리를 git clone 또는 git pull 하다가 아래와 같은 에러를 만나는 경우가 있어요. (전 자주 이러고 까먹어서 글 적는것 ㅋ)레포에 대한 권한이 있다는 전제 하에 설명드립니다!Authentication failed for 'your repo url'repository 'your repo url' not foundremote: Write access to repository not granted. fatal: unable to access 'your repo url': The requested URL returned error: 403 처음 보면 비밀번호가 틀렸거나, 토큰이 잘못된 것 같지만, 실제 원인은 GitHub 계정 권한 + SSO 설정 문제인 경우가 매우 많습니다.해..
썸네일 [Vue3] google material icon 초기 렌더링 문제 해결 문제 상황1. 프로젝트에서 ... 같은 웹폰트 방식으로 아이콘 사용2. 페이지 진입시 로딩 지연이 일어나면서 아이콘으로 보이기 전에 텍스트가 나타나는 현상 발생3. icon 라이브러리도 있다는데 설치하기엔.. 너무 많은 길을 와버렸다 Vue 3 적용 예제1. index.html에 CSS 코드 넣기2. main.js 수정 - Vue 마운트 전에 로딩 감지Promise.all([ document.fonts.load('24px "Material Symbols Outlined"'), document.fonts.load('24px "Material Symbols Rounded"'), document.fonts.load('24px "Material Symbols Sharp"')]).then(() => { ..
[개념/Python] DFS VS BFS DFS, BFS 이해DFS, BFS의 차이를 드라마로 비유하면 이해가 쉽다 드라마를 볼때 유형은 두 가지로 나뉘는데, 1. 끝나길 기다리고 몰아본다 -> DFS2. 드라마 여러개를 하나씩 본다 -> BFS DFS, BFS : "그래프 탐색 알고리즘"그래프 : 여러 개체들이 연결되어 있는 자료구조탐색 : 특정 개체를 찾기 위한 알고리즘 대표 문제 유형1. 경로탐색 유형(최단거리, 시간)2. 네트워크 유형(연결)3. 조합 유형(모든 조합 만들기) [프로그래머스] 타겟 넘버https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programme..
[개념/Python] Floyd-Warshall algorithm, 플로이드 워샬 알고리즘 # 무한대를 나타내는 큰 수 (도달할 수 없는 경로를 표현할 때 사용)INF = int(1e9)# 노드(정점)의 개수number = 4# 입력 그래프: 인접 행렬로 표현# 각 값은 i번 노드에서 j번 노드로 가는 비용# INF는 i에서 j로 직접 연결된 경로가 없음을 의미함a = [ [0, 5, INF, 8], # 0번 노드에서 다른 노드로 가는 비용 [7, 0, 9, INF], # 1번 노드에서 다른 노드로 가는 비용 [2, INF, 0, 4], # 2번 노드에서 다른 노드로 가는 비용 [INF, INF, 3, 0] # 3번 노드에서 다른 노드로 가는 비용]def floyd_warshall(): # 결과 그래프 초기화: 입력 그래프를 그대로 복사하여..
[개념/Python] dijkstra algorithm, 다익스트라 알고리즘 힙 사용 이유 : 힙 개념 정리하기https://chaenilog.tistory.com/105 import sysimport heapq # 우선순위 큐(최소 힙)를 위한 모듈input = sys.stdin.readline # 빠른 입력을 위한 설정INF = int(1e9) # 무한대를 의미하는 값 (예: 10억)# 다익스트라 알고리즘 함수 정의def dijkstra(start, graph, distance): q = [] # 우선순위 큐 (힙) 초기화 # (거리, 노드번호) heapq.heappush(q, (0, start)) # 시작 노드까지의 거리 = 0을 힙에 삽입 distance[start] = 0 # 시작 노드까지의 최단 거리는 0 ..
[개념/Python] heap, 힙 구현 import sysimport heapqinput = sys.stdin.readlinedef heapsort(iterable): h = [] result = [] # 모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappush(h, value) # value를 h에 추가 # 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기 for i in range(len(h)): result.append(heapq.heappop(h)) return resultn = int(input())arr = []for i in range(n): arr.append(int(input()))res = heapsort(arr)fo..
[Python] zip() 함수 Python의 zip() 함수는 여러 개의 iterable(리스트, 튜플 등)을 병렬적으로 묶어서 튜플의 형태로 반환해주는 함수.🔹 zip() 함수 기본 개념zip(iterable1, iterable2, ...)각 iterable의 같은 인덱스에 위치한 요소들을 묶어 (요소1, 요소2, ...) 형태의 튜플을 생성가장 짧은 iterable의 길이에 맞춰서 동작✅ 예제 1: 리스트 두 개 묶기names = ['철수', '영희', '민수'] scores = [90, 85, 88] zipped = zip(names, scores) print(list(zipped))🔸 출력[('철수', 90), ('영희', 85), ('민수', 88)]✅ 예제 2: 반복문에서 사용 names = ['철수', '영희', '민..
[프로그래머스/Python] 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다.입출력 예제phone_b..
[백준1546/Java] 평균 https://www.acmicpc.net/problem/1546문제세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.입력첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.출력첫째 줄에..
[백준5597/Java] 과제 안 내신 분..? https://www.acmicpc.net/problem/5597문제X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.입력입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다.출력출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다.예제 입력 1 복사3145796101112131415161718192021222324252627282930예제..
[백준2480/Java] 주사위 세개 https://www.acmicpc.net/problem/2480문제1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 ..