본문 바로가기

전체 글

(62)
JAVA RESTful API import java.util.Scanner; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class Main { // Rest of the code... private static void registerUser(Scanner scanner, Bank bank) { // Rest of the code... // Create the request body JSON String requestBody = "{\"name\": \"" + name + "\", \"address\": \"" + address + "\", \"p..
[6. React.js] Performance Optimization: UseMemo vs UseCallBack useCallback and useMemo are both React Hooks that help optimize the performance of a React application by memoizing values. They both accept a function as an argument and return a memoized version of the function. Here is a simplified explanation of the difference between the two: useCallback useCallback is a hook that returns a memoized callback. A callback is a function that is passed as an ar..
[5. React.js] UseContext vs Redux https://www.geeksforgeeks.org/whats-the-difference-between-usecontext-and-redux/
[4. React.js] Multiple Dependency Array in fetchData() In React, when you need to fetch data from multiple dependencies (such as multiple APIs or endpoints), you can make use of Promise.all() to handle multiple asynchronous requests. Promise.all() allows you to wait for multiple promises to resolve and then gather the results. Here's an example of how you can fetch data from multiple dependencies in React using Promise.all(): import React, { useEffe..
[3. React.js] Link to new Page vs Pass to Component [Props] In React when you want to design a page wherein user clicks on product details on the main product list page should I link to new page then pass props to the product detail component or pass to product detail component first then link the product detail page? show me code snippets with explanation when designing a page where the user clicks on a product in the main product list page and wants to..
[2. React.js]Async/Await // Fetch the JSON file and assign to array let DATA DATA = fetch(filePath) .then((response) => response.json()) .then((jsonData) => { // Access and use the data as needed console.log(jsonData) // OR call myFunction() myFunction(jsonData) return jsonData.map((item) => { // map each data return { name: item.name, title: item.title, email: item.email, role: item.role, } }) }) .catch((error) => { co..
[1. React.js] React.js File Structure (Modular) src/ ├── components/ │ ├── Button/ │ │ ├── Button.js │ │ ├── Button.css │ ├── Title/ │ │ ├── Title.js │ │ ├── Title.css │ ├── Container/ │ │ ├── Container.js │ │ ├── Container.css ├── pages/ │ ├── HomePage/ │ │ ├── HomePage.js │ │ ├── HomePage.css │ ├── AboutPage/ │ │ ├── AboutPage.js │ │ ├── AboutPage.css ├── App.js ├── index.js Breakdown of the file structure: The components directory contains..
금융 펀드운용 1. 테일러 준칙 명목금리가 3.5%이며 목표인플레이션율 2.5%, 잠재GDP성장률은 3%이다. 예상인플레이션율이 4%이며, 예상GDP성장률은 1%라면 적정기준금리는 얼마인가? * 환율상승=원화가치하락=원화평가절하=달러가치상승 2. 재정정책 (GOV --> gov expenditure, tax) vs 통화정책 (FED --> print money, interest rate) - 확장적 재정정책 효과[이자UP, 환율DOWN, 주가 모름] vs 긴축적 재정정책 효과 [반대]: 1. 이자율 UP: 소득/물가 상승 --> 돈 구하기 어려워짐 --> 정부 국채발행 자금조달 --> 채권공급 UP --> 채권가격 DOWN --> 채권이자율 UP 2. 환율 DOWN: 이자율 UP --> 해외자본 유입 UP -..
MySQL 1. GROUP BY #1. GROUP BY SELECT name, COUNT(Country) as x1, MAX(City) as x2 FROM ANIMAL_INS GROUP BY name HAVING x1 > 50 and name like "A%" ORDER BY x1 desc -- GROUP BY when using aggregate functions (count,max,min,etc) -- CAN ONLY GROUP BY ON 'name' column (x1, x2 are already aggregate) 2. 중복제거 and ignore NULL SELECT count(distinct NAME) FROM ANIMAL_INS WHERE NAME is not NULL 3. 여러기준 정렬 (COL1 기..
백준 2468 - 안전영역 import sys sys.setrecursionlimit(10000) dx = [-1,1,0,0] dy = [0,0,-1,1] def DFS(x,y,height): global count VIS[x][y] = True if GRAPH[x][y] > height: count+=1 #GRAPH[x][y] = -1 for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 height and VIS[i][j] == False: DFS(i,j,height) NUM_HOUSE_PER_COMPONENT.append((height,count)) #print(NUM_HOUSE_PER_COMPONENT) ANS.append(len(NUM_HOUSE_PER_COMPONENT)) #p..
2D Array 1. Flatten 2D Array flatten_1 = list(itertools.chain.from_iterable(ARR)) #방법 1 flatten_2 = list(itertools.chain(*ARR)) flatten_3 = sum(ARR,[]) flatten_4 = [elem for temp_arr in ARR for elem in temp_arr] FLAT = [j for temp in GRAPH for j in temp]
백준 4963 - 섬의 개수 #백준 4963 (섬의 개수) --> COUNT TOTAL # OF CONNECTED COMPONENTS FOR EACH GRAPH #백준 2667 (단지번호 붙이기) --> COUNT # OF HOUSE IN EACH CONNECTED COMPONENT IN 1 GRAPH https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net #2A. DFS VERSION dx = [-1, -1, -1, 0, 0, 1, 1, 1] dy = [-1, 0, 1, ..
when to BFS vs DFS BFS - 최단경로/미로찾기 --> 거리 구할때 GRAPH[nx][ny] = GRAPH[x][y] + 1 업데이트 --> return GRAPH[N-1][M-1] inside WHILE loop - BFS로 모든 노드 방문하는 법 --> nested for loop and call BFS() - Good time complexity but bad space complexity DFS - 완전탐색 (Brute Force Search All) - 조합/순열 --> 모든 경우의 수 [모든 노드 방문] - BACKTRACKING (with some condition) - Good space complexity but bad time complexity (recursion & must visit all nodes)
ZIP (aggregate two iterators as list of tuples) numbers = [1, 2, 3] letters = ["A", "B", "C"] print(list(zip(numbers,letters))) # list of tuples for pair in zip(numbers, letters): print(pair) OUTPUT: [(1, 'A'), (2, 'B'), (3, 'C')] (1, 'A') (2, 'B') (3, 'C')
ITERTOOLS import itertools arr = ['A','B','C','D'] comb_arr = list(itertools.combinations(arr,2)) # 중복 X --> ORDER MATTERS (ex. only [A,B]) perm_arr = list(itertools.permutations(arr,2)) # 중복 X --> ORDER DOES NOT MATTER (ex. [A,B] and [B,A]) product_arr = list(itertools.product(arr,repeat = 2)) # 중복 O --> CARTESIAN PRODUCT comb_repl_arr = list(itertools.combinations_with_replacement(arr,2)) # 중복 O but [A,..
BFS vs DFS [adj. matrix] * USE DEQUE instead of queue # BFS vs DFS [adj matrix] # https://sexy-developer.tistory.com/54 #1. BFS ------------------------------------------------------------------------------------- def bfs(graph, start): visited = [False] * len(graph) answer = [] queue = [start] visited[start] = True while queue: node = queue.pop(0) answer.append(node) for i in range(len(graph[node])): if graph[node][i] ..
BFS vs DFS [adj. list] from collections import deque #1. ADJACENCY MATRIX REPRESENTATION --> MUST SORT FIRST WHEN CONSTRUCTING GRAPH 2. USE DEFAULT DICT #2. DFS --> STACK or RECURSION #3. BFS --> QUEUE (DEQUE) --> CANNOT USE RECURSION #4. APPEND (for adj in node[cur]) vs EXTEND (no looping required) graph1 = { 'A': ['B'], 'B': ['A', 'C', 'H'], 'C': ['B', 'D'], 'D': ['C', 'E', 'G'], 'E': ['D', 'F'], 'F': ['E'], 'G': ['..
Sort 1. Sort By Multiple Keys arr.sort(key = lambda x:(x[1],x[0]))
BACKTRACKING 1. BACKTRACKING ==> DFS (Constraints ) 2. BRANCHING ==> BFS https://www.youtube.com/watch?v=DKCbsiDBN6c&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O&index=63
프로그래머스 LEVEL3: 베스트앨범 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..
금융면접 보호되어 있는 글입니다.
면접준비 보호되어 있는 글입니다.
프로그래머스 Level2 - 거리두기 확인하기 거리두기 확인하기 문제 설명 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼 아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다. 1. 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 2. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리1가 2 이하로 앉지 말아 주세요. 3. 단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있을 경우에는 허용합니다. 예를 들어, 5개의 대기실을 본 죠르디는 각 대기실에서 응시자들이 거리두기를 잘 기키고 있는지 알고 싶어졌습니다. 자리에 앉아있는 응시자들의 정보와 대기실 구조를 대기실별로 담은 2차원 문자열 배열 places가 매개변수로 주어집니..
코드업 1467 - 2차원 배열 n, m = 3,4 10 7 4 1 11 8 5 2 12 9 6 3 n, m = 4,5 17 13 9 5 1 18 14 10 6 2 19 15 11 7 3 20 16 12 8 4 r,c = map(int,input().split()) GRAPH = [[0]*c for _ in range(r)] count = 0 for i in reversed(range(c)): # bigger loop going left for j in range(r): # smaller loop going down count += 1 GRAPH[j][i] = count # [j] to fill columm, [i] to fill row for i in GRAPH: print(*i)
백준 1931 - 달팽이 배열 n = 5 25 10 11 12 13 24 9 2 3 14 23 8 1 4 15 22 7 6 5 16 21 20 19 18 17 n = 7 import numpy as np n = 7 GRAPH = [[0]*n for _ in range(n)] r,c = 0,0 dist = 0 dr = [1,0,-1,0] # 하,우,상,좌 dc = [0,1,0,-1] for i in range(n*n,0,-1): GRAPH[r][c] = i r+=dr[dist] c+=dc[dist] # BOUNDARY CHECKING --> if GRAPH[r][c] != 0, done with outer boundary (ie. "26", "10", "2" if r = n or c = n or GR..
프로그래머스 - 더 맵게 (Heap) 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 scovil..
프로그래머스 기능개발 (스택/큐) 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..
백준 2667 - 단지번호 붙이기 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각 ..
백준 2178 - 바이러스 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력..
백준 2178 - 미로탐색 (BFS) 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력..