백준 2563 < 색종이 > Python
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크https://www.acmicpc.net/problem/2563 2563번: 색종이가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록www.acmicpc.net 📍알고리즘 분류- 구현 📍문제 풀이- 전체 맵은 100 * 100이다- 10 * 10 크기의 정사각형 색종이가 원점에서 x, y 좌표로 얼마나 떨어졌는지 제시된다.- 색종이가 겹쳐진 최종 면적을 구하면 된다 전체 지도를 원소가 0인 100 * 100 크기의 이차원 배열로 표시할 수 있다 0 1 2 3 ... 98 99123...9899 색종이의 좌표가 주어지면, 해당하는 부분을 1로 바꾼..
백준 9655 < 돌 게임 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 📍알고리즘 분류 - 수학 - 다이나믹 프로그래밍 - 게임이론 📍문제 풀이 두 사람 A, B가 게임을 하는데 N개의 돌 중에 1, 3개를 택해서 가져갈 수 있다. 마지막에 가져가는 사람이 이긴다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람은 누구일까? 🤔완벽하게 게임을 했을 때? - 이길 수 있는 상황에서 게임을 이기는 것. 확실한 finish로 시행 횟수를 최소화 하는 것! - 예) N = 7, A, B가 플레이어 A B A 1 3 3(무조건 3을 냄, 1을 내지 않음) 일단 A가 이긴다는 것은 진..
[Python] 10진수를 2진수로 바꾸기
·
✏️ Study/🐍 Python
📍2진수 만들기 구현- 공백 문자열 생성- 원래 수가 0이 되면 종료하는 반복문 생성- 2로 나눈 몫 생성- 2로 나눈 나머지 생성- 나머지를 문자열로 만들고 공백 문자열의 맨 앞에 배치- 반복 INPUT = 7OUTPUT = ""while INPUT != 0: TEMP = INPUT // 2 OUTPUT = str(INPUT % 2) + OUTPUT INPUT = TEMPprint(OUTPUT) # 111"""INPUT TEMP(2로 나눈 몫) OUTPUT(2로 나눈 나머지) 7 3 1 3 1 11 1 0 111..
백준 16964 < DFS 스페셜 저지 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/16964 16964번: DFS 스페셜 저지 첫째 줄에 정점의 수 N(2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에는 트리의 간선 정보가 주어진다. 마지막 줄에는 DFS 방문 순서가 주어진다. DFS 방문 순서는 항상 N개의 정수로 이루 www.acmicpc.net 📍알고리즘 분류 - 자료구조 - 그래프 이론 - 그래프 탐색 - 깊이 우선 탐색 📍문제 풀이 인접 리스트를 만들 수 있는 정보와, 경로가 주어질 때, 주어진 경로가 DFS를 만족하는 경로인지 확인하라 📍의사 코드 경로의 현재 값을 A, 다음 값을 B라고 할 때, 1️⃣주어진 경로를 순회하며, A 와 B를 비교하는 반복문을 만든다 2️⃣분기 - A의 ..
백준 1057 < 토너먼트 > Python
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크https://www.acmicpc.net/problem/1057 1057번: 토너먼트김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를www.acmicpc.net 📍알고리즘 분류- 수학- 브루트포스 📍문제 풀이- 총 팀 수 N과 팀번호 A, B가 주어질 때, A, B 팀이 몇 라운드에서 만나는지 구하라 (A, B 팀은 무조건 이긴다고 가정) - 토너먼트의 규칙은 반드시 2팀씩 묶어 1팀만 올라간다는 것이다따라서 팀 1 2 3 4 가 있다면1라운드에서 묶음 1 1 2 2 로 나타낼 수 있다2라운드에서 묶음 1 1 1 1 로 나타낼 수 있고 토너먼트가 종..
React에서 로컬 캐싱 직접 구현하기
·
✏️ Study/⚛️ React
📍목표 - 검색 API를 호출할 때, API 응답 데이터를 저장하기 - 같은 키워드를 두 번 검색한 경우, API를 호출하지 않고, 저장된 데이터를 활용하기 - data fetching 라이브러리 사용하지 않고 이를 구현하기 📍로컬 캐싱 글로벌 캐싱과 다르게, 로컬내에 캐시를 저장해야 함 (in-memory or web storage) - local 에서 작동하기 때문에 속도가 빠름 (네트워크 필요 X) 캐시를 로컬 스토리지 혹은 세션 스토리지에 저장하면 새로고침 시 데이터 휘발을 막을 수 있지만, 검색 API의 응답 데이터는 중요한 데이터도 아니므로 in-memory에 저장해도 된다 (권장되는 방법) 그리고 웹 스토리지의 경우 메모리 크기에 제한이 있기도 하고, 읽기 쓰기 속도도 당연히 느리다 📍캐시를..
[원티드 FE 프리온보딩] 4-3 의존성
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 📍의존성 특정 모듈이 동작하기 위해 다른 모듈을 필요로 하는 것 📍의존성 역전 원칙 - 유연성이 극대화된 시스템을 만들기 위한 원칙- 즉, 소스코드의 의존성이 추상에 의존하며, 구체에 의존하지 않는 것을 의미 📍추상과 구체 추상- 구체적인 구현 방법이 포함되어 있지 않은 형태- 구현해야 할 일, 이루어져야 하는 결과를 정의하는 것 구체- 해당 동작을 실질적으로 수행하기 위해 해야 하는 일련의 동작과 흐름 어플리케이션이 구체에 의존하게 되면, 구체가 변할 때마다 어플리케이션이 변화해야 하는 상황이 되어버림- 구체는 변화가 잦으므로, 가급적 구체에 의존하는 것을 최소화해야함 📍구체에 의존하는 예시 fetch("todos", { hea..
백준 1240 < 노드사이의 거리 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/1240 1240번: 노드사이의 거리 N(2≤N≤1,000)개의 노드로 이루어진 트리가 주어지고 M(M≤1,000)개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력하라. www.acmicpc.net 📍알고리즘 분류 - 그래프 이론 - 그래프 탐색 - 트리 - 너비 우선 탐색 - 깊이 우선 탐색 📍문제 풀이 - 간선에 가중치를 갖는 트리가 주어질 때, 테스트 케이스에서 주어지는 시작점부터 끝점까지의 거리를 구하라 - DFS를 활용한다- 거리를 계산하는 로직은 아래와 같다1️⃣정점의 갯수 + 1 만큼의 길이를 갖는 빈 배열 distance를 만든다 (계산의 편의상)2️⃣현재 정점의 이웃 정점들을 순회하며 distance[이웃 정..