일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 배열
- 자료형
- 파이썬문법
- 프로그래머스
- Hilt
- composelifecycle
- nullpointerexception방지
- filternotnull()
- ContentProvider
- Dependency
- 파이썬
- 문자열
- 백준파이썬
- 자바set
- android
- disposableeffect
- 자바리스트정렬
- jetpack
- Provider
- programmers
- Python
- 자바
- compose
- Kotlin
- 티스토리챌린지
- 백준
- list
- 오블완
- 리스트
- Java
- Today
- Total
목록Practice/Baekjoon (22)
study gomi

사담 더보기 동적 계획법을 풀려고 단계별로 풀기로 들어가봤더니 ㄴ(ㅇ0ㅇ)ㄱ 오잉,.,,,? 언제 다 풀었었담...? 아마 대부분이 c++ 한창 공부할 때 풀어뒀던 것 같다. 과거의 내가 더 똑똑한 것 같다. 내 제출 import sys input = sys.stdin.readline n, k = map(int, input().rstrip().split()) wv_list = [] # n개의 줄에 거쳐 각 물건의 무게 w, 물건의 가치 v for i in range(n): w, v = map(int, input().rstrip().split()) wv_list.append((w, v)) # 물건은 아예 담지 않는 0번부터 n 번까지 총 n+1 # 배낭의 무게가 0부터 k 인 경우까지, k+1 # 각각의 ..

내 제출 - 노드 번호 n번을 list의 index로 그대로 쓰기 위해 전부 (n+1)해줘야 한다. - visited1, visited2가 [False] * n이 아닌 [False] * (n+1) - 0번째 요소는 그냥 계속 배워 둠. - 첨에 안 그래서 틀렸다 머쓱.. # 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램 from collections import deque import sys input = sys.stdin.readline def dfs(graph, visited, start_node): visited[start_node] = True print(start_node, end=' ') for check in graph[start_node]: if not visit..

내 제출 - 네 번을 틀렸다. 그것도 다 같은 이유(시간 초과)로... - 딕셔너리로 풀었다(dict 참고 : https://taetaegom.tistory.com/18) import sys n, m = map(int, sys.stdin.readline().rstrip().split()) word_dict = {} for _ in range(n): word = sys.stdin.readline().rstrip() if len(word) < m: continue else: if word in word_dict: word_dict[word] += 1 else: word_dict[word] = 1 word_dict = sorted(word_dict.items(), key=lambda x: (-x[1], -le..

내 제출 # 예시 # 4 자료구조의 개수 # 0(큐) 1(스택) 1(스택) 0(큐) # 1 2 3 4 => (큐-1) (스택-2) (스택-3) (큐-4) # 3 삽입할 수열의 길이 # 2 4 7 M의 수열 # 1번 (큐) : 1 - 2 -> 선입 선출 1 반환 -> 2 # 2번 (스택) : 2 - 4 -> 반환된 1 입력 -> 선입후출 1 반환 -> 2 - 4 # 3번 (스택) : 3 - 7 -> 반환된 1 입력 -> 선입후출 1 반환 -> 3 - 7 # 4번 (큐) : 4 -> 반환된 1 입력 -> 선입 선출 4 반환 -> 1 # if 큐 - 스택 - 스택 ..? 큐 첫 번재 원소가 답 # 결과 출력 # print(*queuestack(A, B, C)) from collections import deq..

내 제출 from collections import deque # 풍선 터뜨리는 함수(풍선 개수, 풍선에 적힌 번호 리스트) def pop_balloons(balloon_cnt, balloon_list): balloons = deque([(i + 1, balloon_list[i]) for i in range(balloon_cnt)]) after_pop = [] while balloons: index, move = balloons.popleft() after_pop.append(index) if not balloons: break if move > 0: balloons.rotate(-move + 1) else: balloons.rotate(-move) return after_pop # 입력 n = int(..

내 제출 import sys from collections import deque # 명령의 수 N이 주어진다 (1 ≤ N ≤ 1,000,000) n = int(input()) deque = deque() # n 개의 줄에 명령이 하나씩 주어진다. for _ in range(n): command = list(map(int, sys.stdin.readline().split())) if command[0] == 1: deque.appendleft(command[1]) elif command[0] == 2: deque.append(command[1]) elif command[0] == 3: print(deque.popleft() if deque else -1) elif command[0] == 4: print..

내 제출 - 나는 다다다다 코드를 작성하는 능력은 없음. - 뭐가 필요한 지 주석 달고 코드를 작성하면서 문제 이해하고 푸는 편인데 - 이번에는 주석으로 굳이 추가 설명 없이도 코드 설명이 다 된 것 같다. - 아무튼 이런 이유로 코드에 대한 추가 설명은 없음. # 현재 대기열에서 맨 앞의 학생을 확인 # 이 학생의 번호가 현재 간식을 받을 수 있는 순서라면 받게 내보냄. # 받을 수 없는 순서라면 임시 줄 서는 곳으로 보냄. # 대기열의 학생 전부 처리 후 임시 줄서는 곳 학생들 다시 확인 def can_receive_snacks(waiting_student, waiting_n): # 현재 대기열 cur_line = waiting_n # 임시 공간 # [5,4,3,...] 이런 식으로 내림차순으로 들어..

내 제출 - 간단한 코드 설명↓ 더보기 각 입력된 문자열을 순회하면서 여는 괄호를 스택에 넣고 닫는 괄호가 나오면 스택의 최상단 요소와 매칭되는지 확인. 모든 문자열을 처리한 후 스택이 비어 있고, 균형이 잡혀 있으면 'yes'를 출력하고 그렇지 않으면 'no'를 출력. * 문장 입력 받는 방법에 대한 설명 참고 : https://taetaegom.tistory.com/47 while True: string = input().rstrip('.') # 입력이 '.'만 있는 경우, 종료 if not string: break stack = [] balanced = True for char in string: # 왼쪽 개행 문자 중에 하나면 if char in '([': stack.append(char) # 오..