분류 전체보기
-
2828. [Python]사과 담기 게임Python_알고리즘/Silver V 2023. 7. 13. 18:49
1. 문제 https://www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M pos and base_value = base_value: # 갯수 파악하는 변수에 현재 바구니 왼쪽끝의 위치에서 현재 사과위치 -1을 더해줌 # 앞선 조건에서 pos > 으로 설정했기 때문에 -1을 해줌 cnt += (pos-(base_value-1)) # 이 또한 위 주식과 마찬가지 pos = base_value-1 # 0보다 작아졌을 경우 0으로 초기화 if pos < 0: pos = 0 index += 1 print(cnt) 4. 문제를 풀고난 후..
-
2597. [Python]줄자접기Python_알고리즘/Silver III 2023. 6. 17. 22:54
1. 문제 https://www.acmicpc.net/problem/2597 2597번: 줄자접기 첫째 줄에 줄자의 길이가 입력된다. 줄자의 길이는 10㎝ 이상, 1,000㎝ 이하이고 단위를 나타내는 ㎝은 입력되지 않는다. 둘째 줄에는 두 빨간 점의 위치를 나타내는 정수가 빈칸을 사이에 두고 입 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 N = int(input()) left = 0 right = N # 점을 순서별로 리스트로 오름차순 정렬하여 받음 red_point = sorted(list(map(int,input().split()))) blue_point = sorted(list(map(int,input().split()))) yel..
-
1449. [Python]수리공 항승Python_알고리즘/Silver III 2023. 6. 14. 23:07
1. 문제 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 그리디 알고리즘 3. 파이썬 코드 N,L = map(int,input().split()) # 테이프 붙이는 위치 tape_list = list(map(int,input().split())) # 1000까지 존재하는 테이프 위치 tapes = [0]*1001 # 테이프를 붙인 위치 표시 for i in tape_l..
-
2346. [Python]풍선 터뜨리기Python_알고리즘/Silver III 2023. 6. 13. 23:12
1. 문제 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 4MB 자료 구 3. 파이썬 코드 # 풍선 갯수 N = int(input()) # 풍선에 적힌 번호 num_list = list(map(int,input().split())) # 풍선 번호와 인덱스 저장 리스트 check_list = [] for i,v in enumerate(num_list): check_list.app..
-
2371. [Python]파일 구별하기Python_알고리즘/Silver III 2023. 6. 11. 22:18
1. 문제 https://www.acmicpc.net/problem/2371 2371번: 파일 구별하기 메모리에 N개의 파일이 저장되어 있다. 이 문제에서는 편의상 각각의 파일을 수열과 같이 생각하자. 이와 같은 파일들을 구별하기 위해서는 두 개의 파일을 맨 끝까지 읽어보는 작업을 수행해야 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 튜플 브루트포스 3. 파이썬 코드 import sys # 파일의 갯수 N = int(input()) # 각 파일별 길이 file_lengths = [] for _ in range(N): # 파일을 리스트 형태로 받아옴 num_list = list(map(int, input().split())) file_lengths.append(n..
-
1448. [Python]삼각형 만들기Python_알고리즘/Silver III 2023. 6. 6. 21:19
1. 문제 https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정렬 그리디 알고리즘 3. 파이썬 코드 import sys # input 값이 많으므로 sys 사용 input = sys.stdin.readline N = int(input()) # input 값을 담을 리스트 num_list = [] for _ in range(N): num_list.append(int(..
-
1904. [Python]01타일Python_알고리즘/Silver III 2023. 6. 5. 22:59
1. 문제 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 2. 접근 방법 시간 제한: 0.75초 메모리 제한: 256MB DP(다이나믹 프로그래밍) 3. 파이썬 코드 N = int(input()) dp = [1, 2] for i in range(2,N): dp.append((dp[i-2]+dp[i-1])%15746) print(dp[N-1]) 4. 문제를 풀고난 후 생각 문제를 읽어본 후 직접 타일의 갯수에 따른 변화를 생각해보며 코드 구현을 생각..
-
2312. [Python]수 복원하기Python_알고리즘/Silver III 2023. 6. 4. 22:22
1. 문제 https://www.acmicpc.net/problem/2312 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정수론 3. 파이썬 코드 # 테스트 케이스 갯수 N = int(input()) # 갯수만큼 반복문 시행 for _ in range(N): # 소인수 분해할 수 number = int(input()) # 각각 몇개가 들어있는지 체크할 딕셔너리 num_dict = {} # 시작값 2부터 check = 2 # input으로 들어온 값이 1보다 큰경우 계속 반복문 while number>1: # 만약 c..
-
2667. [Python]단지번호붙이기Python_알고리즘/Silver I 2023. 6. 4. 03:37
1. 문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB DFS(너비 우선 탐색) 3. 파이썬 코드 N = int(input()) # 매트릭스 담을 리스트 matrix = [list(map(str,input())) for _ in range(N)] # 방문했는지 체크 여부 visited = [[False] * N for _ in range(N) ] # 상하좌우 움직임 dx = [-1,0..