분류 전체보기
-
1564. [Python]팩토리얼5Python_알고리즘/Silver II 2023. 8. 13. 15:09
1. 문제 https://www.acmicpc.net/problem/1564 1564번: 팩토리얼5 첫째 줄에 정수 N이 주어진다. N은 1,000,000보다 작거나 같다. 또, 9보다 크거나 같다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 수학 3. 파이썬 코드 N = int(input()) ans = 1 # 1 ~ N 값까지 반복문을 통해서 곱해나감 for i in range(1,N+1): # ans 값의 곱에 10^13 의 나머지를 계산해준다. # N값이 1,000,000 까지 들어오기 때문에 10^6 * 10^6 + 1의 값까지 10의 배수의 나머지를 취해준다. ans = (ans*i) % (10**13) # 만약 곱한 ans 가 10으로 나눠질 경우..
-
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 = ..
-
깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS)알고리즘 2023. 8. 10. 09:52
그래프를 탐색하는 방법에는 크게 깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS) 가 있다. ❓그래프는 링크 추가 예정 1. 깊이 우선 탐색(DFS, Depth-First Search) 루트 노드 혹은 임의의 한 노드에서 시작하여 연결된 노드의 끝까지 탐색을 진행한 후 다음 노드로 넘어가는 것을 말한다. 가장 마지막에 들어온 값들이 먼저 나가는 LIFO(Last In First Out) 스 구조를 가진다. 모든 노드를 방문하고자 할 경우 선택한다. 구현 자체는 간단하지만 너비 우선 탐색(BFS) 보다는 느리다. def DFS(graph): visited = [False] * len(graph) visited[0] = True stack = graph[0] answer = [1] while stack: ..
-
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..