새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기

전체 보기232

[백준] 14600 샤워실 바닥 깔기 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 안쪽으로 영역을 나누어서 타일을 설치해야하므로 분할정복으로 접근했습니다. 2) 알고리즘 분할정복 3) 풀이 코드 사용 언어 - Python import sys def solution(r, c, k, area): # 시작 좌표, 제곱 수, 구역 global num if k 2022. 1. 8.
[React with Typescript] React에 Typescript 적용시키기 (1) 개인 학습 과정에서 작성한 markdown 문서로 잘못된 내용이 존재할 수 있습니다. 잘못된 내용 또는 개선 방안을 말씀해주시면 수정하겠습니다. 📝 React에 TypeScript 적용시키기 (1) 본 글은 자세한 개념 정리가 아닌, 공식문서 및 여러 강의를 듣고 개인 학습 및 복습용으로 작성하였습니다. 리액트에 타입스크립트 추가하기 CRA (create-react-app) 을 통해서 간단하게 적용시킬 수 있습니다. 초기 새로운 프로젝트를 생성할때 적용시키기 위해서는 아래의 명령어를 사용하면 됩니다. npx create-react-app my-app --template typescript 리액트 프로젝트 생성을 위해서는 --template 옵션이 들어가지 않아서 모르다가 타입스크립트를 추가하면서 처음 접.. 2022. 1. 8.
[프로그래머스] 동명 동물 수 찾기 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 이름이 없는 동물은 개수를 확인할 필요가 없으므로 WHERE 절에서 조건을 걸러냈습니다. 2) 풀이 코드 사용 언어 - MySQL SELECT name, COUNT(animal_id) AS cnt -- 출력 열 FROM animal_ins WHERE name IS NOT NULL -- 이름이 없는 경우는 필요 없으므로 GROUP BY name -- 이름을 그룹화 HAVING COUNT(animal_id) >= 2 -- 이름이 나온 횟수가 2회 이상을때 ORDER BY name; 📝 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없습니다. 2) 새롭게 학습한 내용 특별히 없습니다. 🔗 문제 링크 - https://programmers.co.kr/lea.. 2022. 1. 7.
[백준] 17141 연구소2 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 2차원 배열을 상하좌우를 탐색하여야 하고, 시간의 흐름에 따라 상하좌우 이동하며 바이러스를 퍼트려야 하므로 BFS 탐색으로 접근하였습니다. 2) 알고리즘 BFS 3) 풀이 코드 사용 언어 - Python import sys from collections import deque from itertools import combinations sys.stdin = open('input.txt') def BFS(starts): # 너비 우선 탐색 global remain_empty visited = [[0] * N for _ in range(N)] # 좌표 방문 여부 체크 리스트 q = deque(starts) for n in q: # 첫 시작점 방문 체크 .. 2022. 1. 7.
[백준] 1865 웜홀 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 노드간 가중치에 음수가 포함이 되어 다익스트라로는 해결이 어렵다고 생각하여 이전에 학습한 '벨만-포드' 알고리즘을 적용했습니다. 어떠한 지점에서 출발하여 다시 그 지점으로 돌아왔을때 시간이 줄어드는 경우를 찾아야 하는데, 만약에 한번 확인을 하여 계속 해서 값이 줄어드는 싸이클이 존재하는지 여부만 찾으면 된다고 생각했습니다. 2) 알고리즘 벨만-포드 3) 풀이 코드 사용 언어 - Python import sys sys.stdin = open('input.txt') def solution(): distance[1] = 0 # 출발 도시 거리는 0으로 초기화 for i in range(1, N+1): # 도시의 개수만큼 반복하여 확인 for j in ra.. 2022. 1. 6.
[CSS] CSS-in-CSS vs CSS-in-JS 개인 학습 과정에서 작성한 markdown 문서로 잘못된 내용이 존재할 수 있습니다. 잘못된 내용 또는 개선 방안을 말씀해주시면 수정하겠습니다. CSS-in-CSS 와 CSS-in-JS CSS 관련 학습 중 CSS-in-CSS 와 CSS-in-JS 라는 개념을 듣게 되어 학습 및 정리하게 되었습니다. '웹 컴포넌트 스타일링 관리: CSS-in-JS vs CSS-in-CSS (우창균님)' 글을 참고하여 학습 및 정리하였습니다. 자세한 사항은 해당 게시글을 확인 부탁드립니다. 1. CSS (Cascading Style Sheets) CSS는 1996년도에 처음 발표되어 사용되어졌는데, 이전의 웹 페이지는 HTML만으로 이루어져 디자인이 없는 투박한 모습만 보이는 웹페이지였습니다. (참고) 이후 CSS는 여러.. 2022. 1. 6.
[HackerRank] Weather Observation Station 20 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 미디안 값을 구하기 위해 COUNT를 이용해서 반으로 나눈 후 조건과 LIMIT 을 이용하여 풀어보려 접근했습니다. 그러나 홀수개와 짝수개인 경우 구해야하는것이 달라 어려움을 겪었습니다. 타 블로그를 참고하여 새로운 방식으로 접근하여 풀었습니다. 2) 풀이 코드 사용 언어 - MySQL SET @idx=-1; -- SET 이용하여 변수로 사용 SELECT ROUND(AVG(lat_n), 4) -- 출력해야하는 열, 짝수인 경우 중앙 두개의 평균을 구해야하므로 평균값 사용 FROM ( SELECT @idx:=@idx+1 AS rowID, lat_n FROM station ORDER BY lat_n ) -- 인덱스를 1씩 증가 시켜서 총 개수를 알아냄 W.. 2022. 1. 6.
[백준] 11657 타임머신 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 노드간 거리를 나타내는 간선의 가중치가 음수가 있는 경우도 있기 때문에, 다익스트라로는 어려울거라 생각했습니다. 간선 가중치에 음수가 들어간 경우 사용하는 벨만-포드 알고리즘을 학습하여 접근했습니다. 2) 알고리즘 벨만-포드 어떠한 노드에서 다른 노드로 이동하는 거리를 구할때 사용 (가중치가 음수가 있는 경우에도 사용 가능) 3) 풀이 코드 사용 언어 - Python import sys sys.stdin = open('input.txt') def solution(start: int): # 벨만포드 (시작 노드) dist[start] = 0 # 시작 위치의 거리는 0으로 세팅 for i in range(1, N+1): # 도시의 개수만큼 반복하여 확인 .. 2022. 1. 5.
[HackerRank] Weather Observation Station 19 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 유클리드 거리 계산 구하는 공식을 적용시키기 위해 제곱을 구하는 POW 함수와 제곱근을 구하는 SQRT 함수를 사용하였습니다. 2) 풀이 코드 사용 언어 - MySQL SELECT ROUND(SQRT(POW((MAX(lat_n) - MIN(lat_n)), 2) + POW((MAX(long_w) - MIN(long_w)), 2)), 4) -- 유클리드 거리 계산 FROM station; 📝 결과 및 학습한 내용 1) 어려웠던 내용 함수의 존재 여부를 알 수 없어서 구글에 검색하여 함수를 알게 되었습니다. 2) 새롭게 학습한 내용 제곱 구하기 : POW(x, y) -> x^y (x의 y제곱) 제곱근 구하기 : SQRT(x) -> 루트 x 의 값 🔗 문제 .. 2022. 1. 4.
[백준] 1504 특정한 최단 경로 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 초기에 도착지점에 도착했을때, 필수로 방문해야하는 정점을 방문했는지 확인이 필요하여 최소힙을 사용하는 과정에서 방문한 정점의 리스트의 정보를 같이 최소힙에 저장을 시키는 방식으로 접근했습니다. 그러나 최소힙에 경로를 저장하는 리스트를 같이 할당하여 반복시켰기 때문에 메모리 초과가 발생했습니다. 이 문제를 해결하기 위해 정점 방문 기록을 삭제하고, 다익스트라를 최초 1번 정점, 필수 방문해야하는 정점 2개를 탐색하도록 접근하였습니다. 2) 알고리즘 다익스트라 3) 풀이 코드 사용 언어 - Python import sys import heapq sys.stdin = open('input.txt') def solution(start: int): # 다익스트.. 2022. 1. 4.
[HackerRank] Weather Observation Station 18 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 각 위도, 경도의 최소, 최댓 값을 구해야하므로 MIN 과 MAX 를 사용하여 구함 2) 풀이 코드 사용 언어 - MySQL SELECT ROUND((max(lat_n) - min(lat_n)) + (max(long_w) - min(long_w)), 4) -- MIN과 MAX로 좌표값들을 구하고 맨해튼 거리를 구함 FROM STATION 📝 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없음 2) 새롭게 학습한 내용 절대값을 구하는 함수 ABS(숫자) 를 새로 알게 됨 🔗 문제 링크 - https://www.hackerrank.com/challenges/weather-observation-station-18/problem?isFullScreen=fa.. 2022. 1. 3.
[백준] 1043 거짓말 📖 문제 🧑🏻‍💻 풀이 과정 1) 문제 이해 및 접근 진실을 아는 사람들과 진실을 모르는 사람들이 어떤 파티에서 접촉하면 모두 진실을 알게 되므로, DFS 탐색으로 같이 겹치는 사람들을 구하려 접근 2) 알고리즘 DFS 3) 풀이 코드 사용 언어 - Python import sys sys.stdin = open('input.txt') def solution(person: list): # 진실을 아는 사람들 구하는 함수 (진실을 아는 사람들) visited = [0] * (N+1) # 사람 확인했는지 체크용 리스트 stack = list(person.copy()) while stack: node = stack.pop() if not visited[node]: visited[node] = 1 for e in.. 2022. 1. 3.