Python_알고리즘/Silver II
-
5397. [Python]키로거Python_알고리즘/Silver II 2023. 8. 11. 16:22
1. 문제 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 스택 3. 파이썬 코드 import sys # 많은 인풋 처리 input = sys.stdin.readline T = int(input()) for _ in range(T): # 인풋값 공백 제거 후 words = input().strip() # 왼쪽 리스트 오른쪽 리스트 생성 left_list, right_list = ..
-
1260. [Python]DFS와 BFSPython_알고리즘/Silver II 2023. 8. 8. 12:12
1. 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB DFS(깊이 우선 탐색) BFS(너비 우선 탐색 3. 파이썬 코드 # DFS 구현 함수 def DFS(graph, N, V): # N의 길이만큼 방문 체크 visited = [False] * N # graph 값들을 내림차순 정렬 for i in graph: i.sort(reverse=Tru..
-
1874. [Python]스택 수열Python_알고리즘/Silver II 2023. 8. 7. 19:42
1. 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 스 3. 파이썬 코드 import sys input = sys.stdin.readline N = int(input()) num_list = [] # 초기값 1 value = 1 # N 만큼 만들고 싶은 리스트 값 추가 for _ in range(N..
-
1541. [Python]잃어버린 괄호Python_알고리즘/Silver II 2023. 8. 6. 20:46
1. 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트 포 3. 파이썬 코드 # -가 들어있는 부분을 기준으로 인풋값을 짜른다. word = list(map(str,input().split("-"))) answer_list = [] # word의 길이만큼 반복문을 진행하는데 for i in range(len(word)): # 만약 word[i]에 + 연산자가 들어있는 경..
-
1024. [Python]수열의 합Python_알고리즘/Silver II 2023. 8. 4. 11:02
1. 문제 https://www.acmicpc.net/problem/1024 1024번: 수열의 합 첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 수학 3. 파이썬 코드 N, L = map(int,input().split()) # 수학적 귀납법 # N = (x+1) + (x+2) + ... (x+L) => Lx + (L(L+1)/2) # 리스트 길이가 L ~ 100 까지 증가 for i in range(L,101): # N 의 값을 구하기 위해서는 x 개만큼 L이 있고 나머지 1~L까지 합은 L*(L+1)/2 로..
-
1254. [Python]팰린드롬 만들기Python_알고리즘/Silver II 2023. 8. 4. 10:57
1. 문제 https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트 포스 3. 파이썬 코드 word = input() # 단어 길이 word_length = len(word) # 단어랑 단어의 역순이 같으면 팰린드롬 이므로 길이 출력 if word == word[::-1]: print(word_length) # 다른 경우 else: # 단어의 0번 인덱스부터 끝까지 탐색하며 for i in r..
-
10799. [Python]쇠막대기Python_알고리즘/Silver II 2023. 2. 13. 00:44
1. 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 스택 3. 파이썬 코드 # input 문자열 info = input() # 문자를 담을 리스트 stack = [] # 갯수 체크 cnt = 0 # enumerate 로 index와 value 값을 가져옴 for i,v in enumerate(info): # 여는 괄호일 경우 if v == "(": # 스택에 index 값 추가 stack...