전체글보기 183

[Python/파이썬] 백준 알고리즘 3085 - 사탕 게임 (Brute Force)

""" 1. 아이디어 브루트포스로 다 돌려본다. N이 최대 50이므로 가능하다. 한 위치에서 상하좌우와 바꿀 수 있지만 겹치므로 아래와 오른쪽만 계속해서 바꿔주면 된다. 바꿔준 뒤, 전체 보드에서 먹을 수 있는 사탕의 최대 개수를 구한 뒤 다시 원상복구 해주고 다음 걸로 넘어가 바꿔주고 확인하고를 반복하면 된다. 2. 시간복잡도 - O(N^4) : 50 ** 4 = 6250000 가능 3. 자료구조 N: int; board: str[][]; maxCnt: int; """ import sys input = sys.stdin.readline N = int(input()) board = [list(input()) for _ in range(N)] maxCnt = 0 def check(): glo..

[Python/파이썬] 백준 알고리즘 14888 - 연산자 끼워넣기 (BackTracking)

""" 1. 아이디어 연산자들 숫자만큼 리스트로 연산자를 담고 백트래킹으로 순회한다. 그리고 각각의 결과값을 구해 비교하여 최댓값과 최솟값을 구한다. 2. 시간복잡도 - O(N^2) : 100 * 100 가능 3. 자료구조 N: int; A: int[]; operator: str[]; canUsedCnt: int[]; maxValue, minValue: int; """ import sys sys.setrecursionlimit(10 ** 4) input = sys.stdin.readline N = int(input()) A = list(map(int, input().split())) canUsedCnt = list(map(int, input().split())) operatorList = ..

[Python/파이썬] 백준 알고리즘 1931 - 회의실 배정 (Greedy Approach)

처음 필자는 시작 시간과 끝나는 시간의 차를 구해 그것을 기준으로 오름차순 정렬 후 다른 회의 시간대와 겹치지 않는다면 추가하는 방식으로 풀려고 했다. 하지만 이 방식의 경우 이중 for문을 사용하게 되므로 O(n^2) : 100000 * 100000 = 100억 (> 4억(시간제한 2초))이 되버려 불가능한 풀이였다. 이는 조금 생각을 달리하여 풀리는 문제였는데, 전체 회의의 시작시간은 0시로 정해져있으니 굳이 회의 시간을 구해주지 않더라도 끝나는 시간을 기준으로 오름차순 정렬하면 그것이 회의 시간을 정렬한 것과 비슷한 의미가 될 수 있었다. 그리고 한가지 더 고려해야할 사항이 있는데 끝나는 시간이 같은 경우이다. 끝나는 시간이 같다면 빨리 시작하는 순서대로 정렬이 되어야한다. 예를 들어보겠다. (3 ..

[React/Typescript] react img 절대경로 적용하는 법 (feat.Carco) (CRA로 만든 React + Typescript 프로젝트)

프로젝트 폴더 구조가 겹겹으로 되어있는 경우, 상대경로의 문제점은 위와같이 코드가 길어지고 지저분해진다는 것이다. 때문에 대부분 절대경로를 사용한다고 한다. 그리고 이미지 경로에도 마찬가지로 위와 같이 불편하고 지저분한 감이 있었다. (img태그의 src 속성에 require("경로").default를하면 엑박이 뜨지 않는다.) 이때 발견한 괜찮은 방법은 Craco라는 모듈과 craco-alias라는 플러그인을 사용해 tsconfig 옵션을 적용하는 것이다. Craco Create React App Configuration Override Create-React-App(CRA)를 쉽게 설정하기 위해 만들어졌다. craco 모듈을 설치하고 root 폴더에 craco.config.js 파일을 만들고 그곳에 ..

Front-End/React.JS 2022.03.10

[프로그래머스 SQL 고득점 Kit] 오랜 기간 보호한 동물(2)

SELECT animal_id, name FROM ANIMAL_OUTS as O JOIN ANIMAL_INS as I USING (animal_id, animal_type, name) ORDER BY O.datetime - I.datetime desc LIMIT 2 DATETIME 끼리는 기본적인 연산이 가능하다는 것을 알게 되었다. 그리고 그를 이용한 값을 ORDER BY에서 이용할수도 있다는 것도 알게되었다. JOIN ~ USING을 사용하면 조금더 깔끔하게 작성할 수 있다.

Back-End/SQL 2022.03.04

[프로그래머스 SQL 고득점 Kit] 입양 시각 구하기(2)

SET @hour := -1; -- 변수 선언 SELECT (@hour := @hour + 1) as HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT FROM ANIMAL_OUTS WHERE @hour < 23 ORDER BY HOUR asc 쿼리문에서 로컬 변수를 활용하는 문제다. SET을 사용하면 변수를 정의할 수 있다. @가 붙은 것은 변수라고 생각하면 된다. 즉, hour는 초기값이 -1인 변수이다. :=은 비교 연산자 =과 혼동을 피하기 위한 대입 연산자이다. SELECT (@hour := @hour + 1)은 @hour의 값에 1씩 증가시키며 SELECT 문 전체를 실행하게 된다. 이때, 처음 hour..

Back-End/SQL 2022.03.04
반응형