Python_알고리즘/Silver III
-
1051. [Python]숫자 정사각형Python_알고리즘/Silver III 2025. 2. 5. 04:22
1. 문제 https://www.acmicpc.net/problem/1051 2. 접근 방법 시간 제한: 1초메모리 제한: 128MB구현 3. 파이썬 코드 N, M = map(int,input().split())matrix = [ list(map(int,input())) for _ in range(N)]# 최대 결과값이 1이 될 수 있으므로 1을 베이스로 시작result = [1]# 브루트포스 시작for i in range(N): for j in range(M): # 꼭지점 계산을 위한 초기값 선언 current = 1 # 범위 내에 존재하면 계속 반복문 진행 while i+current 4. 문제를 풀고난 후 생각 N, M 값이 크지 않고 모든..
-
2343. [Python]기타 레슨Python_알고리즘/Silver III 2025. 1. 17. 03:04
1. 문제 https://www.acmicpc.net/problem/2343 2. 접근 방법 시간 제한: 2초메모리 제한: 128MB이분 탐색 3. 파이썬 코드 N, M = map(int, input().split())num_list = list(map(int, input().split()))# 시작 점과 끝점 설정을 블루레이 길이로 설정start = max(num_list)end = sum(num_list)# 이분 탐색while start 4. 문제를 풀고난 후 생각 평범한 이분 탐색과 같이 0 혹은 1로 초기값을 잡을 경우 불필요 연산 및 예외 케이스가 나올 수 있기 때문에 초기 시작값을 리스트 내에서 max 값으로 선언해준다.end 값으로는 결국 리스트를 모두 합한 값보다 클 수 가 없기 때문에 ..
-
11663. [Python]선분 위의 점Python_알고리즘/Silver III 2025. 1. 16. 03:28
1. 문제 https://www.acmicpc.net/problem/11663 2. 접근 방법 시간 제한: 1초메모리 제한: 256MB이분 탐색 3. 파이썬 코드 import sys# 많은 인풋 처리input = sys.stdin.readline# N 과 M 인풋N, M = map(int,input().split())# 점들 리스트num_list = list(map(int,input().split()))# 점들 정렬num_list.sort()# M 선분 횟수만큼 반복for _ in range(M): # 시작점 끝점 받기 start,end = map(int,input().split()) # 시작점과 끝점이 범위내에 없는 경우 연산 제외 if start > num_list[-1] or..
-
31263. [Python]대한민국을 지키는 가장 긴 힘Python_알고리즘/Silver III 2025. 1. 2. 17:43
1. 문제 https://www.acmicpc.net/problem/31263 2. 접근 방법 시간 제한: 1초메모리 제한: 1024MBTop-Down 3. 파이썬 코드 N = int(input())number = input()# 사람 수 체크cnt = 0# 인덱스 접근index = N-1# 인덱스 값이 0 보다 크거나 같을때 반복while index >= 0: # 만약 현재 인덱스 -2 값이 0 보다 작은경우 사람 추가 후 탈출 if index - 2 641: # 현재 일수를 나눠서 그 자리수 체크 day_str = str(day) # 만약 자리수가 한자리면 인덱스 -1 두자리면 -2 if int(day_str..
-
11727. [Python]2*n 타일링 2Python_알고리즘/Silver III 2023. 8. 26. 16:50
1. 문제 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB DP(Dynamic Programming) 3. 파이썬 코드 # 1 1 # 2 3 # 3 5 # 4 11 # 5 21 # 6 43 # 7 85 # 8 171 N = int(input()) # DP 설정 DP = [1, 3] for i in range(2,N): # 이전 값 + 이전 전 값 * 2 하면 다음 값 DP.append((DP[i-1] + DP[i-2..
-
9095. [Python]1, 2, 3 더하기Python_알고리즘/Silver III 2023. 8. 25. 21:12
1. 문제 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 512MB DP(Dynamic Programming) 3. 파이썬 코드 # 1 = 1 1 # 2 = 1+1 2 2 # 3 = 1+1+1, 2+1, 1+2 3 4 # 4 = 1+1+1+1, 3+1, 1+3, 2+2, 1+1+2, 2+1+1, 1+2+1 7 # 5 = 1+1+1+1+1, 3+2, 2+3, 1+1+3, 1+3+1, 3+1+1, 2+2+1 1+2+2, 2+1+2 1+1+1+2, 2+1+1+1, 1+2+1+1, 1+1+2+1 13..
-
11899. [Python]괄호 끼워넣기Python_알고리즘/Silver III 2023. 8. 20. 00:06
1. 문제 https://www.acmicpc.net/problem/11899 11899번: 괄호 끼워넣기 첫 번째 줄에 S를 올바른 괄호열으로 만들기 위해 앞과 뒤에 붙여야 할 괄호의 최소 개수를 출력합니다. 불가능한 경우는 주어지지 않습니다. www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 32MB 스택 3. 파이썬 코드 words = input() stack = [] for word in words: # 스택에 값이 있을때 if stack: # 만약 닫는 괄호의 경우 if word == ")": # 여는 괄호가 스택의 top 에 있으면 pop if stack[-1] == "(": stack.pop() # 외의 경우 append else: stack.append(word)..
-
2606. [Python]바이러스Python_알고리즘/Silver III 2023. 8. 19. 23:55
1. 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB DFS(깊이 우선 탐색) 3. 파이썬 코드 n = int(input()) m = int(input()) # 컴퓨터 갯수만큼 생성 computers = [[] for _ in range(n+1)] # 그래프 방식을 통해서 연결된 컴퓨터 리스트 생성 for __ in range(m): v1, v2 = map(int,input().spli..
-
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..