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

내 제출 - 네 번을 틀렸다. 그것도 다 같은 이유(시간 초과)로... - 딕셔너리로 풀었다(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) # 오..

내 제출 import sys # 명령의 수 n n = int(input()) # 정수를 저장하는 스택을 구현 stack = list() for _ in range(n): # 해야 할 명령을 정수 형태로 입력으로 받음. x = list(map(int, sys.stdin.readline().split())) # 1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000) if x[0] == 1: stack.append(x[1]) # 2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력. 없다면 -1을 대신 출력한다. elif x[0] == 2: print(stack.pop() if stack else -1) # 3: 스택에 들어있는 정수의 개수를 출력한다. elif x[0] == 3: print(le..

내 제출 - 첫 제출은 틀렸었다(복잡도 n^2인 중첩 for문 쓴 첫 제출 ↓) 더보기 # 창문의 개수와 사람의 수 n이 주어진다. n = int(input()) # 처음에 모든 창문은 닫혀 있다. window = [False] * n for num in range(1, n+1): for i in range(num, n, num): window[i-1] = not window[i-1] print(window.count(True)) - 이 문제 메모리 제한이 64MB다. - 다른 문제는 128MB는 됐는데 작다. 그런데도 나는 for문을 중첩시켜서 계산했다. - 여튼 그래서 N이 매우 큰 경우에는 안 맞는 코드인지 메모리 초과가 떴다. - 사실 정답이 아닌 걸 보고 새 코드를 작성하는 데에 시간이 한참 걸..