728x90
반응형
SMALL

2024/12 18

[Python] 전화번호 목록

✏️ 문제 문제 파악처음에는 in 으로 풀면 되지 않나 싶어서 했는데 역시나.. 시간 초과로 통과가 되지 않았다.찾아보니 딕셔너리와 리스트(배열)의 in 연산 시간복잡도는 다음과 같았다.자료구조딕셔너리리스트(배열)시간복잡도O(1) (평균), O(n) (최악)O(n) 그래서 딕셔너리를 생성해 이를 in 처리해서 풀었다.  코드시간 초과 코드def solution(phone_book): for i in range(len(phone_book)-1): for j in range(i+1, len(phone_book)): if (phone_book[i] == phone_book[j][:len(phone_book[i])]) or (phone_book[j] in phone_book..

[Python] 코딩테스트 풀 때 유용한 파이썬 함수 (1)

코딩테스트 풀 때 유용한 파이썬 함수 Counter, join, zip, lambda 4가지에 대해서 알아보겠습니다.  1. Counter()collections 모듈에 포함된 데이터 카운팅을 위한 클래스이므로 사용할 때 import 해주어야 한다.주어진 데이터에서 요소들의 개수를 빠르게 세어주며 결과를 딕셔너리 형태로 반환한다.주로 문자열, 리스트, 튜플 등 반복 가능한(iterable) 객체에서 요소의 빈도를 계산할 때 사용한다. 1.1 사용법 입력: iterable 객체출력: 각 요소의 개수를 담은 딕셔너리 형태from collections import Counter# 1. 문자열counter1 = Counter("abcabc")print(counter1) # Counter({'a': 2, 'b'..

Python 2024.12.10

[Python] 피로도

✏️ 문제 문제 파악전체의 경우 수를 다 돌았을 때 최소 값을 구하므로 완전탐색을 풀 때 효율 좋은 백트래킹을 활용해 풀면 된다. max_cnt를 dfs 함수 내에 사용할 때 에러가 뜨는데 local 변수라 에러가 뜨는 것이므로 이를 global 함수로 변경해서 사용하면 된다.global 함수로 정의하기 위해선 dfs 함수 내외, 두 곳 다 정의해주어야 하는데이게 싫으면 dfs 함수 내에 nonlocal max_cnt라고 써주면 한줄로 에러를 해결할 수 있다.  코드def solution(k, dungeons): global max_cnt max_cnt = 0 visited = [False] * len(dungeons) def dfs(k, cnt): global ..

[Python] 프로세스

✏️ 문제 문제 파악priorities 배열 내의 값이 같아도 다 다른 프로세스이므로 값으로 구분하면 안되고 위치로 구분해야 한다. 그래서 딕셔너리를 사용해 { 인덱스 : 값 } 으로 주었고 location과 인덱스가 같으면 반복문을 그만 돌도록 코드를 짰다. 우선순위가 높은 프로세스부터 실행되기 때문에만약 딕셔너리의 값 중 최대값(max)인데딕셔너리의 인덱스 == location 이라면 프로세스 실행 변수 출력딕셔너리의 인덱스 != location 이라면 딕셔너리 값 = -1, 프로세스 실행 변수 +1로 하여 반복문을 돌리도록 하였다.  코드def solution(priorities, location): cnt = 1 dic = {} for i, p in enumerate(pri..

[Python] 의상

✏️ 문제 문제 파악각 의상들은 입는 방법이 2가지로 나뉜다.입는다.안입는다. 하지만 코니는 최소 한 개의 이상을 입으므로 전부 안입는 경우는 치지 않으므로 마지막 결과값에 -1을 해주어야 한다. 예시 1번을 보면 headgear1. 두 개 다 안쓴다.2. yellow_hat 쓰고 green_turban 안쓴다.3. green_turban 쓰고 yellow_hat 안쓴다.eyewear1. 안쓴다.2. blue_sunglasses 쓴다 경우의 수는 해당 의상의 종류 + 1(안쓴다) 인 것으로 알 수 있다.그리고 우리가 구하는 조합의 수는 3(headgear의 경우의 수) * 2(eyewear의 경우의 수) - 1(아무것도 안입는 경우) = 5 이다.이 계산식을 근거로 코드를 짜면 된다.  코드from co..

[Python] n^2 배열 자르기

✏️ 문제 문제 파악처음에는 이중 for 반복문 써서 풀었는데 역시나.. 시간초과로 통과가 되지 않았다.그럼 규칙을 찾아야 하는데 첫 번째 예시를 보면 다음과 같다.i \ j01200, 1 = 11, 2 = max(i, j) + 12, 3 = max(i, j) + 113, 2 = max(i, j) + 14, 2 = max(i, j) + 15, 3 = max(i, j) + 126, 3 = max(i, j) + 17, 3 = max(i, j) + 18, 3 = max(i, j) + 1 위의 표에서 파란색 숫자는 1차원 배열로 만들었을 때 left와 right의 기준이 되는 숫자를 말한다.전체적으로 봤을 때 해당 index의 값은 가로와 세로 index 중 max(index) + 1로 이뤄지는 것을 알 수 있..

[Next.js] Data Fetch 방법, 병렬 Fetch, Suspense 사용법, prefetch?

Next.js에서 Data Fetch 하는 방법에 대해 알아보겠습니다.  1. Data Fetch원래 Front랑 DB 사이를 연결하려면 API가 필수적으로 필요하며 API가 사이에서 데이터를 주고 받을 수 있게 도와줬는데 Next.js를 사용하면 API가 더이상 필요없다. client component에서 Data fetching 방법Hooks 사용기본 React만 쓸 때처럼 useEffect를 쓰면서 해야된다.fetch할 때마다 API에 요청한다.server component로부터 Data fetching 방법Hooks 미사용프레임워크가 다 해주기 때문에 useEffect를 쓰지 않아도 된다.첫 번째 fetch만 API에 요청한다.첫 번째 fetch할 때는 fetch되는 동안 페이지가 로딩되는데 이때..

[Next.js] "use client"를 왜 쓰는 걸까?

Next.js는 Hydration의 유무에 따라 client component와 server component로 나눠진다.그럼 Hydration이란 무엇일까? 1. Hydration정의사용자가 최초 html을 본 뒤에 어떤 일이 발생하는 지에 대한 과정을 말한다.달리 말해, 단순 html을 React Application으로 초기화하는 작업을 말한다.과정사용자가 페이지에 도착한 순간에는 아직 Javascript도 프레임워크도 로드되지 않은 더미 html을 보여준다. 이때 event listener 등은 작동하지 않는다.그 후 아주 빠르게 react application이 초기화된다.완료되면 react component가 되고 요소들이 interactive하게 된다.Hydration 과정을 거치면 even..

728x90
반응형
LIST