[백준] Python,Java로 풀기📖/자료구조
백준 2164번(카드2) - 큐, 자료구조
백준 2164번(카드2) - 큐, 자료구조
2024.10.21https://www.acmicpc.net/problem/2164 ❓ python 풀이 - 규칙 찾아서 풀었따...내가 생각한 규칙은1(2^0)12(2^1)232*(3-2) = 24(2^2)452*(5-4) = 262*(6-4) = 472*(7-4) = 68(2^3)892102*(10-8) = 2112*(11-8) = 2122*(12-8) = 2132*(13-8) = 2142*(14-8) = 2152*(15-8) = 216(2^4)162의 거듭제곱인 경우:2의 거듭제곱에 해당하는 수는 그대로 남습니다. 예를 들어, 1, 2, 4, 8, 16은 그대로 해당 값이 남습니다.즉, 2^n인 경우 마지막 남는 카드는 그 값 그대로입니다.2의 거듭제곱보다 큰 수인 경우:2의 거듭제곱을 기준으로 해당 수(N)에서 ..
백준 10733번 (제로) - 자료구조, 스택
백준 10733번 (제로) - 자료구조, 스택
2024.10.21https://www.acmicpc.net/problem/10773 ❓ python 풀이import sysinput = sys.stdin.readline i = int(input().strip()) # 입력받을 정수의 개수 Kstack = [] # 숫자를 저장할 스택을 초기화for _ in range(i): # K번 반복하며 정수를 입력받음 put = int(input().strip()) # 입력받은 숫자를 정수로 변환 if put != 0: # 0이 아닐 경우 스택에 해당 숫자를 추가 stack.append(put) else: stack.pop() # 0일 경우 가장 최근에 입력된 숫자를 스택에서 제거print(sum(stack)) # 스택에 남아..
백준 10828(스택) - 스택, 자료구조
백준 10828(스택) - 스택, 자료구조
2024.10.14https://www.acmicpc.net/problem/10828 ❓ python 풀이import sysinput = sys.stdin.readline n = int(input().strip()) # 명령의 수stack = []for _ in range(n): command = input().strip().split() if command[0] == "push": stack.append(int(command[1])) elif command[0] == "pop": print(stack.pop() if stack else -1) #stack이 들어있을 경우 pop,else -1 elif command[0] == "size": print(len(..
백준 9012(괄호) - 스택
백준 9012(괄호) - 스택
2024.10.14https://www.acmicpc.net/problem/9012 일단 내가 생각한 풀이 " (())()) "와 같은 문자열이 주어졌을 때, 여는 괄호 " ( "는 +1, 닫는 괄호 " ) "는 -1로 처리다만, 예외적으로 "))(("와 같이 닫는 괄호가 여는 괄호보다 먼저 나오는 경우에도 합이 0이 될 수 있으므로, 합계가 0보다 작아지는 순간 루프를 즉시 종료하고valid = False로 설정.루프가 끝난 후, valid가 True이면서 합계가 0이면 "YES"를 출력하고, 그렇지 않으면 "NO"를 출력합니다. ❓ python 풀이import sysT = int(sys.stdin.readline().strip()) # 테스트 케이스 수for i in range(T): l = sys.stdin..
백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조
백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조
2022.07.031966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 예제 풀이 마지막 테스트케이스 : priority: (몇번째 숫자인지, 중요도) ( 0,1 ) ( 1,1 ) ( 2,9 ) ( 3,1 ) ( 4,1 ) ( 5,1 ) sort_priorty: 중요도를 정렬시킨 리스트 9 1 1 1 1 1 priority[0][1] 와 sort_priority[0] 을 비교한다. ① priority[0][1] = 1 이 sort_priority[0] =9와 다름 => priorirty[0][1]의 값을 popleft()하고 뒤에 ap..
백준 5430(AC) -Python(파이썬) - 자료구조
백준 5430(AC) -Python(파이썬) - 자료구조
2022.06.085430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 풀이 1. 일단 수행할 함수, 배열에 들었는 수의 개수, 배열에 들어있는 정수를 받아들인다. 2. 배열에 들어있는 정수는 항상 "["+배열에 들어 있는 정수+"]" 구조로 이루어졌다. "[]"을 제외한 값을 리스트로 받아들이기 위해서 인덱스 1부터 -1까지의 인덱스르 리스트로 받아들인다.[1:-1] 배열 "R" "D" "D" 4 1 3 2 1 2 3 2 1 1 4 3 2 이런 느낌으로 RDD 함수가 진행되면 [ 2,1 ]이 남는다. 📌 문제 풀면서 주의할점 1. 파이썬에서는 deque 라이브러리를 사용 2. re..
백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택
백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택
2022.06.0710828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 예제 설명 push 1 stack = [ 1 ] push 2 stack = [ 1,2 ] top stack = [ 1,2 ] 이므로 stack top = 2 출력 size stack = [ 1,2 ]이므로 size = 2 출력 empty stack = [ 1,2 ]이므로 empty가 아니므로 0 출력 pop stack = [ 1,2 ]이므로 pop이므로 2 출력 pop stack = [ 1 ]이므로 pop이므로 1 출력 pop stack = [ ..
백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐)
백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐)
2022.06.071158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 예제 설명 이걸 좀 해석하면 ① 제일 앞에 있는 값을 pop하고 뒤에다가 append한다 ② 그 과정을 두번 하고나서 ③ 세번째에는 pop하면서 나오는 값을 따로 큐에 저장한다. 이렇게 세 개의 과정을 한번 할때마다 하고서 큐에 사람 수만큼 채워지면 그만둔다. 풀이과정 ① 사람 수만큼 1번부터 사람수까지 번호를 부여한다. ② 제일 앞에 있는 값을 pop하고 다시 append에서 뒤로 붙이는 과정을 두번을 하므로 range(2)만큼 for문을 실행한다. ③ 세번째 pop하는 것은 visted 리스트에 붙인다. ④ ②,③번의 과정을 모두 큐에 저장할 때까지..
백준 1927(최소 힙) - Python(파이썬) - 자료구조
백준 1927(최소 힙) - Python(파이썬) - 자료구조
2022.06.01예제 설명 왼쪽 그림은 0,12645678,1,2 이 입력 | 오른쪽 그림은 0,0,0,0,32 이 입력되었을 때 힙안 숫자와 출력 되는 구조 Python(파이썬) import sys import heapq #연산의 개수 n = int(sys.stdin.readline()) heap=[] for i in range(n): #자연수 x 입력 받기 x=int(sys.stdin.readline()) #x가 0이 아닌 경우 if x!=0: #힙에 x를 입력 넣기 heapq.heappush(heap,x) #x가 0인 경우 else: #힙에 아무것도 없는 경우 if len(heap)!=0: #힙에서 가장 작은 값 출력 print(heapq.heappop(heap)) #힙에 값이 있는 경우 else: print(0)..
백준 11279(최대 힙) - Python(파이썬) - 자료구조
백준 11279(최대 힙) - Python(파이썬) - 자료구조
2022.05.3111279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 파이썬 : 최소 힙 구조, 자바 : 최소 힙 구조, C++: 최대 힙 구조를 이용 파이썬 힙 구조에 대한 설명 참고) 최단 경로 알고리즘 - 다익스트라 최단 경로 알고리즘 최단 경로 알고리즘(Shortest Path) : 가장 짧은 경로를 찾는 알고리즘 1) 최단 경로 문제- 지점( 노드 ), 지점 간 연결된 도로( 간선 ) - 한 지점에서 다른 한 지점까지의 최단 경로를 구해야 하는 경우 coooco.tistory.com import sys ..