Python_알고리즘
-
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 = ..
-
5430. [Python]ACPython_알고리즘/Gold V 2023. 8. 8. 12:38
1. 문제 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 덱 파싱 3. 파이썬 코드 import sys from collections import deque # 많은 인풋 처리 input = sys.stdin.readline T = int(input()) for _ in range(T): # 명령어로 R or D 가 입력됨 command = input() # N 의 갯수만큼 리스트 인풋 N = int(input()) # deque 형태로 리..
-
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..
-
1347. [Python]미로 만들기Python_알고리즘/Silver III 2023. 8. 2. 15:50
1. 문제 https://www.acmicpc.net/problem/1347 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 구현 3. 파이썬 코드 N = int(input()) direction = input() # 현재 위치를 0,0 으로 기준으로함 current_pos = [0, 0] # 남쪽을 보고 서있으므로 남쪽을 1로 정함 current_see = 1 # 움직인 방향을 리스트에 저장 초기값으로 현재위치 answer_list = [curre..
-
2607. [Python]비슷한 단어Python_알고리즘/Silver III 2023. 8. 2. 15:46
1. 문제 https://www.acmicpc.net/problem/2607 2607번: 비슷한 단어 첫째 줄에는 단어의 개수가 주어지고 둘째 줄부터는 한 줄에 하나씩 단어가 주어진다. 모든 단어는 영문 알파벳 대문자로 이루어져 있다. 단어의 개수는 100개 이하이며, 각 단어의 길이는 10 이 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 import copy N = int(input()) word_list = [] answer = 0 # 단어들을 리스트에 저장 for _ in range(N): word_list.append(input()) # 첫번째 단어의 갯수를 세기위한 딕셔너리 word_dict = {} # 단어의 길이 word_le..
-
1021. [Python]회전하는 큐Python_알고리즘/Silver III 2023. 8. 2. 15:18
1. 문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB Deque(덱) 3. 파이썬 코드 # deque 선언 from collections import deque N, M = map(int,input().split()) # 찾고자 하는 숫자 리스트 answer_list = list(map(int,input().split())) # 초기 인덱스값 index = 0 # deque 선..