Python_알고리즘
-
1421. [Python]나무꾼 이다솜Python_알고리즘/Silver I 2023. 12. 7. 05:25
1. 문제 https://www.acmicpc.net/problem/1421 1421번: 나무꾼 이다솜 첫째 줄에 이다솜이 가지고 있는 나무의 개수 N과 나무를 자를 때 드는 비용 C와 나무 한 단위의 가격 W이 주어진다. 둘째 줄부터 총 N개의 줄에 이다솜이 가지고 잇는 나무의 길이가 한 줄에 하나 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트포스 구현 3. 파이썬 코드 import sys input = sys.stdin.readline N, C, W = map(int, input().split()) # 나무를 담을 리스트 wood_list = [] for _ in range(N): wood_list.append(int(input())) # 나무를 작은값..
-
1138. [Python]한 줄로 서기Python_알고리즘/Silver II 2023. 12. 5. 03:14
1. 문제 https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 구현 3. 파이썬 코드 N = int(input()) # 값 리스트 num_list = list(map(int,input().split())) # 정답을 출력할 리스트 ans_list = [0]*N # enumerate 사용하여 index와 value 같이 받아옴 for i,v in enumerate(num_list): ..
-
1490. [Python]자리수로 나누기Python_알고리즘/Gold V 2023. 11. 1. 00:59
1. 문제 https://www.acmicpc.net/problem/1490 1490번: 자리수로 나누기 첫째 줄에 어떤 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트 포스 3. 파이썬 코드 import math # 숫자를 리스트로 받아옴 nums = list(map(int, input())) # 리스트 숫자를 합칠 변수 number = "" # 최소공배수를 구할 변수 answer = 1 # 리스트를 반복해가며 0이 아닌 값들의 최소공배수를 구하고 숫자를 합쳐줌 for i in nums: if i != 0: answer = math.lcm(answer, i) number += s..
-
1374. [Python]강의실Python_알고리즘/Gold V 2023. 10. 30. 00:49
1. 문제 https://www.acmicpc.net/problem/1374 1374번: 강의실 첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 우선순위 큐 정렬 3. 파이썬 코드 import heapq # 인풋 N = int(input()) # 리스트 저장할 리스트 num_list = [] # 강의실 번호 N 은 필요없으므로 시작과 끝값 리스트 저장 for _ in range(N): N, S, E = map(int,input().split()) num_l..
-
1245. [Python]농장 관리Python_알고리즘/Gold V 2023. 10. 21. 15:35
1. 문제 https://www.acmicpc.net/problem/1245 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB BFS(너비 우선 탐색) 3. 파이썬 코드 from collections import deque from pprint import pprint # 8방향 탐색 direction = [(-1,-1), (-1,0), (-1,1), (0,-1), (0,1), (1,-1), (1,0), (1,1)] def..
-
7490. [Python]0 만들기Python_알고리즘/Gold V 2023. 10. 11. 01:07
1. 문제 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 재귀 백트래킹 3. 파이썬 코드 # 연산 결과가 0인 값을 출력할 함수 def calculator(num): global ans # 연산을 진행할 변수 answer = "" # 정답을 출력할 변수 temp = "" # N값과 num이 같으면 if num == N: # 마지막 값을 리스트에 추가 ans.append(str(num)) # ans 값을 순회하며 for i in ans: ..
-
1759. [Python]암호 만들기Python_알고리즘/Gold V 2023. 10. 9. 18:30
1. 문제 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 백트래킹 브루트포스 3. 파이썬 코드 def find_list(num): global vowel_cnt global consonant global list_length # 리스트 길이가 채워야 하는 조건에 맞는 경우 if list_length == N: # num값이 끝값일 경우 if num == N-1: # 자음, 모음 체크를 못했기 때문에 각각 체크한 후 값 증가 if ans[-1] == "a" or ans[-1] == "e" or ans[-1] == "i" or ans[-1] == "o" or ans[-1] == "u": vowel_cnt += 1 elif ans[-1] != "a" and ans[-1] != "e" and ans..
-
17425. [Python]약수의 합Python_알고리즘/Gold IV 2023. 10. 9. 18:18
1. 문제 https://www.acmicpc.net/problem/17425 17425번: 약수의 합 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 512MB 에라토스테네스의 체 3. 파이썬 코드 import sys # 약수 구하는 함수 def divisor(): # 약수를 저장할 리스트 num_list = [1] * 1000001 # 정답을 출력할 리스트 ans = [0] * 1000001 # 2부터 1,000,000 까지 반복..
-
9019. [Python]DSLRPython_알고리즘/Gold IV 2023. 10. 8. 01:55
1. 문제 https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 2. 접근 방법 시간 제한: 6초 메모리 제한: 256MB BFS(너비 우선 탐색) 3. 파이썬 코드 from collections import deque import sys input = sys.stdin.readline # 2배 해주는 함수 def Double(num): return (num * 2) % 10000 # -1 해주는 함수 def Subtrack(num): ..
-
10942. [Python]팰린드롬?Python_알고리즘/Gold IV 2023. 10. 7. 05:09
1. 문제 https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 0.5초 메모리 제한: 256MB DP(다이나믹 프로그래밍) 3. 파이썬 코드 import sys input = sys.stdin.readline # 숫자의 길이 N = int(input()) # 숫자 리스트 num_list = list(map(int,input().split())) # 반복문 횟수 M = int(input()) # 각 숫자들 인덱스별 팰린드롬 체크 배열 ans_list = [ [..