일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Python
- Microsoft
- slidingwindow
- 니트코드
- two-pointer
- 파이썬
- GenAI
- dfs
- 릿코드
- medium
- 투포인터
- gcp
- 생성형AI
- GenerativeAI
- 파이썬기초100제
- sql코테
- nlp
- codeup
- 리트코드
- 파이썬알고리즘
- 슬라이딩윈도우
- 알고리즘
- tree
- Python3
- heap
- 자연어처리
- 코드업
- SQL
- LeetCode
- stratascratch
- Today
- Total
목록파이썬알고리즘 (38)
Tech for good
해시셋(Hash Set) 활용 -중복을 방지하면서 각 노드를 탐색할 때 (k - 현재 노드 값)이 존재하는지 확인하는 방법. 설명dfs 함수를 사용하여 트리를 깊이 우선 탐색(DFS) 한다.각 노드를 방문할 때 k - node.val이 seen 집합에 존재하는지 확인한다.존재하면 True를 반환하고, 없으면 현재 노드 값을 seen에 추가한 후 왼쪽과 오른쪽 서브트리를 탐색한다.전체 탐색이 끝날 때까지 조건을 만족하는 쌍이 없으면 False를 반환한다.시간 복잡도각 노드를 한 번씩 방문하므로 O(N) (N은 트리의 노드 개수).공간 복잡도최악의 경우 모든 노드 값을 seen에 저장해야 하므로 O(N). # Definition for a binary tree node.class TreeNode: de..

Two Pointer 방식으로 해결하는 방법Two Pointer 방식을 사용하려면, BST(Binary Search Tree)의 중위 순회(in-order traversal)를 수행하여 오름차순으로 정렬된 리스트를 만든 후, 투 포인터를 사용하여 두 숫자의 합이 k가 되는지 확인하면 된다.Two Pointer 알고리즘BST를 중위 순회하여 정렬된 리스트를 생성중위 순회(In-order Traversal)를 수행하면 BST의 값이 오름차순으로 정렬됨.Two Pointer 기법을 활용하여 합이 k가 되는 두 수 찾기리스트의 left(처음)과 right(끝) 포인터를 설정.두 값의 합이 k보다 작으면 left를 증가.두 값의 합이 k보다 크면 right를 감소.두 값의 합이 k이면 True 반환.# Defin..

6092 : [기초-리스트] 이상한 출석 번호 부르기1 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다. 그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다. 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자. 예시 n = int(input()) #개수를 입력받아 n에 정수로 저장 a = input().split() #공백을 기준으로 잘라 a에 순서대로 저장 for i in range(n) : #0부터 n-1까지... a[i] = int(a[i]) #a에 순서대로 저장되어있는 각 ..

6087 : [기초-종합] 3의 배수는 통과 1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되, 3의 배수인 경우는 출력하지 않도록 만들어보자. 예를 들면, 1 2 4 5 7 8 10 11 13 14 ... 와 같이 출력하는 것이다. 예시 ... for i in range(1, n+1) : if i%2==0 : continue #다음 반복 단계로 넘어간다. print(i, end=' ') #i가 짝수가 아닐 때만 실행된다. ... 위 코드는 홀 수만 출력하는 예시이다. 참고 조건문이나 반복문의 코드블록 안에서 continue 가 실행되면, 반복 블록 안에 있는 나머지 부분을 실행하지 않고, 다음 반복 단계로 넘어간다. 즉, 반복 블록의 나머지 부분은 실행되지 않고, 다음 단계의 반복을 계..

6085 : [기초-종합] 그림 파일 저장용량 계산하기이미지가 컴퓨터에 저장될 때에도 디지털 데이터화 되어 저장된다.가장 기본적인 방법으로는 그림을 구성하는 한 점(pixel, 픽셀)의 색상을빨강(r), 초록(g), 파랑(b)의 3가지의 빛의 세기 값으로 따로 변환하여 저장하는 것인데,예를 들어 r, g, b 각 색에 대해서 8비트(0~255, 256가지 가능)씩을 사용한다고 하면,한 점의 색상은 3가지 r, g, b의 8비트+8비트+8비트로 총 24비트로 표현해서총 2^24 가지의 서로 다른 빛의 색깔을 사용할 수 있는 것이다.그렇게 저장하는 점을 모아 하나의 큰 이미지를 저장할 수 있게 되는데,1024 * 768 사이즈에 각 점에 대해 24비트로 저장하면 그 이미지를 저장하기 위한저장 용량을 계산할 ..

6083 : [기초-종합] 빛 섞어 색 만들기 빨강(red), 초록(green), 파랑(blue) 빛을 섞어 여러 가지 다른 색 빛을 만들어 내려고 한다. 빨강(r), 초록(g), 파랑(b) 각 빛의 가짓수가 주어질 때, 주어진 rgb 빛들을 섞어 만들 수 있는 모든 경우의 조합(r g b)과 만들 수 있는 색의 가짓 수를 계산해보자. **모니터, 스마트폰과 같은 디스플레이에서 각 픽셀의 색을 만들어내기 위해서 r, g, b 색을 조합할 수 있다. **픽셀(pixel)은 그림(picture)을 구성하는 셀(cell)에서 이름이 만들어졌다. 입력 빨녹파(r, g, b) 각 빛의 가짓수가 공백을 두고 입력된다. 예를 들어, 3 3 3 은 빨녹파 빛에 대해서 각각 0~2까지 3가지 색이 있음을 의미한다. 0

6080 : [기초-종합] 주사위 2개 던지기 1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때, 나올 수 있는 모든 경우를 출력해보자. 예시 ... for i in range(1, n+1) : for j in range(1, m+1) : print(i, j) ... 참고 위 코드는 바깥쪽의 i 값이 1부터 n까지 순서대로 바뀌는 각각의 동안에 안쪽의 j 값이 다시 1부터 m까지 변하며 출력되는 코드이다. 조건선택 실행구조 안에 다른 조건선택 실행구조를 넣어 처리할 수 있는 것과 마찬가지로 반복 실행구조 안에 다른 반복 실행구조를 넣어 처리할 수 있다. 원하는 형태로 실행 구조를 결합하거나 중첩시킬 수 있다. 입력 서로 다른 주사위 2개의 면의 개수 n, m이 공백을 두고 입..
while문의 기본 구조 반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문이라고도 부른다. 다음은 while문의 기본 구조이다. while : ... while문은 조건문이 참인 동안에 while문 아래의 문장이 반복해서 수행된다. https://wikidocs.net/21 03-2 while문 [TOC] ## while문의 기본 구조 반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문이라고도 부른다. 다음은 while문의 ... wikidocs.net 6071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기 임의의 정수가 줄을 바꿔 계속 입력된다. -2147483648 ~ +2147483647, 단 개수는 알 수 없다. ..