Python_알고리즘/Silver I
-
1105. [Python]팔Python_알고리즘/Silver I 2024. 6. 20. 17:44
1. 문제 https://www.acmicpc.net/problem/1105 2. 접근 방법 시간 제한: 2초메모리 제한: 512MB수학그리디 알고리즘 3. 파이썬 코드 L, R = map(str,input().split())# 인풋 값의 길이 측정L_length = len(L)R_length = len(R)# 각 인풋에서 들어온 값들에 8 이 있는지 체크하고 없으면 무조건 0 이 나오게 된다.# 또한 각각 길이를 비교하여 두 길이가 다른경우도 무조건 0이 나오게된다.if L.count("8") == 0 or R.count("8") == 0 or L_length != R_length: print(0)# 외의 경우else: # cnt 변수를 선언해주고 cnt = 0 # 길이가 같기 때..
-
11052. [Python]카드 구매하기Python_알고리즘/Silver I 2024. 5. 20. 19:36
1. 문제 https://www.acmicpc.net/problem/11052 2. 접근 방법 시간 제한: 1초메모리 제한: 256MBDP(다이나믹 프로그래밍) 3. 파이썬 코드 # i 장을 구매하기 위한 최대값 계산 방법 접근N = int(input())# 카드 리스트 저장card_list = list(map(int,input().split()))# dp 시작dp = [0] * (N+1)# dp[1] 값 card_list[0] 으로 초기화dp[1] = card_list[0]# N+1 까지 반복문for i in range(2,N+1): # i 값까지 반복문 시행 for j in range(1,i+1): # i 번 dp 에는 i 번째 카드를 구매하기 위해서 최대 값을 갱신해야함 ..
-
1932. [Python]정수 삼각형Python_알고리즘/Silver I 2024. 4. 22. 19:47
1. 문제 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB DP(다이나믹 프로그래밍) 3. 파이썬 코드 import sys # 많은 인풋 처리 input = sys.stdin.readline N = int(input()) # 숫자 저장할 리스트 num_list = [] # 숫자 저장 for _ in range(N): num_list.append(list(map(int,input().split()))) # 1 ~ N 까지 반복 for i in range(1,N..
-
1141. [Python] 접두사Python_알고리즘/Silver I 2024. 4. 9. 21:12
1. 문제 https://www.acmicpc.net/problem/1141 1141번: 접두사 접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 하지만, {hello, hell}, {giant, www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정렬 그리디 알고리즘 3. 파이썬 코드 N = int(input()) # 단어 저장 word_list = [] # 단어 길이와 문자로 저장 for _ in range(N): word = input() word_list.append([len(word),word]) # 길이..
-
11279. [Python]최대 힙Python_알고리즘/Silver I 2024. 1. 9. 01:58
1. 문제 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 우선순위 큐 3. 파이썬 코드 import heapq import sys input = sys.stdin.readline num_list = [] N = int(input()) for _ in range(N): # 인풋 값 체크 input_num = int(input()) # 인풋 값이 0 인 경우 if ..
-
1946. [Python]신입 사원Python_알고리즘/Silver I 2023. 12. 19. 21:43
1. 문제 2. 접근 방법 시간 제한: 2초 메모리 제한: 256MB 정렬 3. 파이썬 코드 import sys input = sys.stdin.readline # 테스트 케이스 T = int(input()) for _ in range(T): # 들어오는 인원 수 N = int(input()) # 총 등수를 카운팅할 리스트 total_list = [] # 사람들 등수 추가 for __ in range(N): person_list = list(map(int, input().split())) total_list.append(person_list) # 서류심사 성적 순위로 정렬 total_list.sort(key=lambda x: x[0]) answer_list = [] # 면접 순위를 정답 리스트에 저장 a..
-
1926. [Python]그림Python_알고리즘/Silver I 2023. 12. 9. 04:21
1. 문제 https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB DFS(깊이우선탐색) 3. 파이썬 코드 def DFS(start): stack = [start] global cnt global max_width visited[start[0]][start[1]] = True width = 1 while stack: check = stack.pop() for k in range(4): dx = dir..
-
1342. [Python]행운의 문자열Python_알고리즘/Silver I 2023. 12. 8. 01:45
1. 문제 https://www.acmicpc.net/problem/1342 1342번: 행운의 문자열 민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 (Python 8초) 메모리 제한: 256MB 브루트포스 백트래킹 3. 파이썬 코드 def backtracking(current): global cnt # 현재 값이 시작인경우 ans 리스트에 값을 한개씩 추가해 나가며 방문했는지 체크 if current == 0: for i in range(word_length): ans.append(word[i]) vis..
-
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())) # 나무를 작은값..
-
1527. [Python] 금민수의 개수Python_알고리즘/Silver I 2023. 8. 30. 19:24
1. 문제 https://www.acmicpc.net/problem/1527 1527번: 금민수의 개수 첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 재귀 3. 파이썬 코드 def DFS(num): # cnt 변수 글로벌 선언 global cnt # num 값에 "4" or "7" 추가 num = str(num) # 범위 내에 있으면 cnt 증가 if A 44 => 444 (값이 넘으면) 447(넘으면) 47 => 474(넘으면) 477(넘으면) 4로 돌아옴 초기값 : 7 ..