트리 -비선형구조 -상위 원소와 하위 원소로 이루어진 트리(나무) 모양의 구조 -1:N 관계를 가진다. - 최상위 노드를 루트라고 한다. -가장 마지막에 존재하는 루트를 단말노드(잎노드)라고 한다. 차수 : 노드에 연결된 자식 노드의 수 높이 : 루트노드에서 노드까지의 간선의 수 이진트리 : 모든 노드들이 최대 2개의 서브트리를 갖는 트리. 방향에 따라 왼쪽 자식노드/오른쪽 자식노드라고 부른다. 높이가 h이면 가질 수 있는 노드의 최소 개수는 h+1개 이며 최대 개수는 2^h+1 -1 개 특별한 이진트리 - 포화 이진트리 : 모든 노드에 포화 상태로 차 있는 이진 트리 자식 노드가 모두다 2개씩 있는 것이다.(마지막 레벨까지 꽉 참) -완전 이진 트리: 포화 이진 트리의 노드번호를 따라서 1번부터 n번까..
백트레킹알고리즘: 해를 찾는 도중에 해가 아니면 되돌아가서 다시 해를 찾는 기법. 깊이우선 탐색과의 차이: 가지말아야할 곳 가지치기를 하면서 시도 횟수를 줄임. 조기에 차단 분할 정복 알고리즘: 분할/정복/통합 분할: 문제를 작은 부분으로 분할함. 정복: 분할한 문제를 각각 해결. 통합: 해결된 해답을 모은다. 분할 정복 알고리즘을 이용하여 퀵정렬에 사용할 수 있다. 퀵정렬: 주어진 배열을 두개로 분할하고, 각각을 정렬한다. 퀵정렬과 합병정렬과의 차이점: 1. 합병정렬은 그냥 두부분으로 나누고 통합을 해야한다. 2.퀵정렬은 pivot(기준아이템)을 중심으로 작은것은 왼편, 큰것은 오른편에 배치시킨다.
def Bubble_sort(arr): for i in range(len(arr) - 1, 0, -1): for j in range(0, i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr for tc in range(1, 11): N = int(input()) sort_box = list(map(int, input().split())) sort_box = Bubble_sort(sort_box) for i in range(N): sort_box[-1] -= 1 sort_box[0] += 1 sort_box = Bubble_sort(sort_box) result = sort_box[-1] - sort_box[0] pr..
for tc in range(1, 11): N = int(input()) arr = list(map(int,input().split())) count = 0 #두번째부터 끝에서 두번째까지 반복 for i in range(2, N-2): # 좌우 1,2 만큼 차이 나는것들의 뺄셈 한다 left1 = arr[i] - arr[i-1] left2 = arr[i] - arr[i-2] right1 = arr[i] - arr[i+1] right2 = arr[i] - arr[i+2] #그 값들이 모두 양수라면 최소값을 찾아준다 if left1 > 0 and left2 > 0 and right1 > 0 and right2 > 0: min_arr = [] min_arr.append(left1) min_arr.append(..
T = int(input()) for tc in range(1, T+1): #카드 장수 : N N =int(input()) card = list(input()) #카운트 리스트 10개 생성 count = [0] * 10 for i in range(N): count[int(card[i])] += 1 max_count = 0 #큰 숫자 저장 리스트 idx =[0] #카운트가 최고이면 idx리스트에 추가하고 #최고카운트와 카운트값이 같으면 그 숫자를 idx리스트안에 뒤에 붙여준다 for j in range(len(count)): if max_count
스위치 켜고 끄기 출처분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 9922 2128 1668 21.184% 문제 1부터 연속적으로 번호가 붙어있는 스위치들이 있다. 스위치는 켜져 있거나 꺼져있는 상태이다. 에 스위치 8개의 상태가 표시되어 있다. ‘1’은 스위치가 켜져 있음을, ‘0’은 꺼져 있음을 나타낸다. 그리고 학생 몇 명을 뽑아서, 학생들에게 1 이상이고 스위치 개수 이하인 자연수를 하나씩 나누어주었다. 학생들은 자신의 성별과 받은 수에 따라 아래와 같은 방식으로 스위치를 조작하게 된다. 스위치 번호 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 스위치 상태 0 1 0 1 0 0 0 1 남학생은 스위치 번호가 자기가 받은 수의 배수이면, 그 스위치의 상태를 바꾼다. 즉, 스위치가 켜져 있..
색종이 - 2 성공출처분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 2731 1199 1029 45.330% 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 둘레의 길이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 네 장의 검은색 색종이를 과 같은 모양으로 붙였다면 검은색 영역의 둘레는 96 이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위..
색종이 성공출처분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 8411 5896 5129 71.905% 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개..
일곱 난쟁이 성공스페셜 저지출처분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 51208 21246 15863 44.120% 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난..
- Total
- Today
- Yesterday
- AWS
- 안드로이드스튜디오
- vue.js
- Python
- SSAFY퇴소
- Java
- Pyhton
- 독학
- 세션 스토리지
- vue
- SSAFY
- 비동기패턴
- git
- N과M
- 위클리챌린지2주차
- splide
- 백준
- javascript
- django
- commit되돌리기
- 파이썬
- 알고리즘
- 프로그래머스
- DOM
- 자바
- 배포
- SQL
- 트리
- 싸피
- SWEA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |