트리 문제를 이번 주 부터 시작 했는데 좀 어려웠다!! 이 문제는 리프노드에 숫자 데이터가 들어오고 각 부모 노드는 왼쪽자식 + 오른쪽 자식이다. 그래서 나는 반복문을 맨 끝에서 부터 돌았다. 2씩 줄게해서 부모 노드당 두개의 자식을 탐색하게 했다. 그림을 그려서 보니 인덱스 i라는 부모 노드가 존재하면 왼쪽 자식의 인덱스는 i*2이고 오른쪽 자식은 i * 2+1이다. 그래서 처음에 생각한 방법은 tree[i//2] = tree[i] + tree[i+1]이다. 그런데 인덱스 에러가 났다. 그림을 그려보니 노드의 개수가 짝수이면 맨 마지막에 왼쪽 노드만 존재하는 관계가 존재한다. 그래서 N이 짝수이면 맨 뒤 노드를 0이라는 데이터를 넣는 방식으로 내가 만들어서 넣었다. 그렇게 하면 부모= 왼 + 0 이 되..
import sys sys.stdin = open('input.txt') T = int(input()) for tc in range(1, T+1): N = int(input()) cnt = 0 lst = [list(map(int, input().split())) for i in range(N)] #교차하는 케이스는 2개 #A1Y2일 때 교차 #A1>A2 이고 Y1 lst[j][1]: cnt += 1 elif lst[i][0] > lst[j][0]: if lst[i][1] < lst[j][1]: cnt += 1 ##########행렬로 했더니 런타임에러########### # N = int(input()) # cnt = 0 # arr = [[0] * 10000 for _ in range(10001)] # ..
def func(i, j): global result visited[i][j] = 1 # print(i, j,nums[i][j]) if nums[i][j] == 3: #값이 안들어감 # print(i, j) result = 1 return if i-1 >= 0 and nums[i-1][j] != 1 and visited[i-1][j] == 0:# func(i-1, j) if result == 1: return if j-1 >= 0 and nums[i][j-1] != 1 and visited[i][j-1] == 0:# 좌 func(i, j - 1) if result == 1: return if j+1 < N and nums[i][j+1] != 1 and visited[i][j+1] == 0: #우 func..
T = int(input()) for tc in range(1, T+1): N,M = list(map(int,input().split())) pizza = list(map(int,input().split())) cheese = [] for i in range(M): cheese.append([i+1,pizza[i]]) #리스트에 인덱스와 함께 치즈 값 넣어주기 # print(cheese) in_pizza = cheese[:N] #화덕에 N개만 넣을 수 있음 remain_pizza = cheese[N:] while len(in_pizza) > 1: #하나만 남으면 중단 check = in_pizza.pop(0) #일단 맨앞 피자 꺼냄 check[1] //= 2 #check[1]인 이유는 [0]이면 인덱스 ..
이 문제는 저번에 풀었던 암호문제랑 거의 같다. 맨 앞에꺼를 빼서 뒤에 붙이는 과정을 M번 반복하면 된다. T = int(input()) for tc in range(1, T+1): N,M = list(map(int,input().split())) nums = list(map(int,input().split())) #N개 숫자 for i in range(M): #M번 이동 temp = nums.pop(0) #맨 앞 빼서 맨뒤로보낸다 nums.append(temp) print('#{} {}'.format(tc,nums.pop(0)))
T = int(input()) for tc in range(1, T + 1): str_input = list(input().split()) result = [] print('#{}'.format(tc),end=' ') for i in range(len(str_input)): if str_input[i].isdigit() == True: result.append(int(str_input[i])) if str_input[i] == '.': if len(result) != 1: print('error') break print(result.pop()) break if str_input[i] == '+' : if len(result) == 1 or len(result) == 0: print('error') bre..
T = int(input()) for tc in range(1,1+T): words = list(input()) temp = [words[0]] #일단 첫번째 문자를 받아서 temp리스트에 넣어준다 cnt = 1 #cnt는 문자를 몇개 넣었는지 temp안에 있는 개수 for i in range(1, len(words)): #인덱스 1부터 끝까지 돌면서 비교 if temp == words[i:i+cnt]: break temp.append(words[i]) cnt += 1 # print(temp) print('#{} {}'.format(tc, len(temp)))
- Total
- Today
- Yesterday
- 위클리챌린지2주차
- 알고리즘
- SQL
- vue
- 배포
- django
- N과M
- Pyhton
- DOM
- Java
- splide
- git
- 자바
- 트리
- SSAFY
- 백준
- 싸피
- 파이썬
- javascript
- 안드로이드스튜디오
- 독학
- vue.js
- 비동기패턴
- commit되돌리기
- 프로그래머스
- SSAFY퇴소
- AWS
- Python
- 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 |