Python_알고리즘
-
2579. [Python]계단 오르기Python_알고리즘/Silver III 2023. 2. 6. 01:21
1. 문제 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 규칙 파악 DP 3. 파이썬 코드 N = int(input()) # 계단의 값 리스트 배열 생성 work_list = [0] # 각 계단의 최대값 저장 배열 생성 max_list = [0]*301 # 계단의 값 추가 for _ in range(N): work_list.append(int(input())) # 계단의 최대 칸 수만큼 반복문 시..
-
17413. [Python]단어 뒤집기 2Python_알고리즘/Silver III 2023. 2. 5. 00:27
1. 문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 512MB 스택(원래라면) 문자열 3. 파이썬 코드 word = input() # 단어들을 문자열 합칠 변수 words = "" # 거꾸로된 단어를 합칠 변수 reverse_word = "" # 태그들을 담을 변수 tag = "" # 태그인지 판단할 변수 check = 0 # 모든 값들들을 담을 리스트 wo..
-
2578. [Python]빙고Python_알고리즘/Silver IV 2023. 2. 5. 00:16
1. 문제 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 # 내 빙고 my_bingo = [ list(map(str,input().split())) for _ in range(5)] # 사회자가 부르는 빙고 ans_bingo = [ list(map(str,input().split())) for _ in range(5)] # bingo 일치하는 값 저장 리스트 bingo_lis..
-
2720. [Python]세탁소 사장 동혁Python_알고리즘/Bronze III 2023. 2. 3. 23:47
1. 문제 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB Greedy Algorith(탐욕 알고리즘) 3. 파이썬 코드 N = int(input()) # 돈 단위가 1.00$ 달러가아닌 100으로 표현되서 각 돈에 100을 곱한 리스트 생성 money = [25, 10, 5, 1] for _ in range(N): # 들어온 input 돈을 money 리스트를 반복해가며 몫을 출력하고 나머지를 payback 에 넣어줌 payback = int(input(..
-
14916. [Python]거스름돈Python_알고리즘/Silver V 2023. 2. 2. 23:44
1. 문제 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 512MB Greedy Algorith(탐욕 알고리즘) 3. 파이썬 코드 N = int(input()) cnt = 0 first_value = N # N 값이 5보다 작은 경우 2로 나눈 몫과 나머지 출력 if N < 5: cnt += N//2 N = N%2 if N == 0: print(cnt) else: print(-1) else: # N 값이 5보다 큰 경우 cnt 에 5로 나눈 몫을 넣고 나머지를 N에 넣어줘서 2로 똑같은 작업 수행 for i in ..
-
1439. [Python]뒤집기Python_알고리즘/Silver V 2023. 2. 1. 22:55
1. 문제 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 문자열 카운트 3. 파이썬 코드 N = input() # 값을 비교할 문자열 변수 생성 check = "" # 갯수를 카운트할 변수 생성 cnt = 1 # 문자열 반복 시작 for i in N: # 처음 값을 시작했을 경우 if check == "": # 비교할 문자열 변수에 i 값을 넣어줌 check = i # 처음이 아닌 경..
-
10610. [Python]30Python_알고리즘/Silver IV 2023. 1. 31. 23:52
1. 문제 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 문자열 정렬 조건 3. 파이썬 코드 N = input() # 숫자를 담을 리스트 생성 num_list = [] # 30으로 나눠야기 때문에 3의 배수인지 확인하는 변수 생성 total = 0 # 정답 출력할 문자 변수 선언 ans = "" # 30의 배수이므로 30보다 작으면 -1 출력 if int(N) < 30: print(-1..
-
1789. [Python]수들의 합Python_알고리즘/Silver IV 2023. 1. 30. 22:24
1. 문제 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 수의 합 구하는 방법 3. 파이썬 코드 S = int(input()) s = S*2 n = int(1) # 무한 반복문으로 제일 높은 n의 값을 찾음 while True: # S*2 < n*(n+1) 한 이유는 1~N 까지 합을구하는 식이 n*(n+1)//2 이기 때문이다. # s 값이 딱나누어 떨어지지 않는 경우 그 값을 딱 초과했을 때 break를 걸어준다. # break 됐을때 count -1 해주는 이유는 값이 한개 더 더해졌기 때문에 빼..
-
11047. [Python]동전 0Python_알고리즘/Silver IV 2023. 1. 30. 21:15
1. 문제 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 탐욕 알고리즘(Greedy Algorithm) 3. 파이썬 코드 N,K = map(int,input().split()) # 돈 담을 리스트 생성 money = [] for _ in range(N): money.append(int(input())) cnt = 0 # ..
-
2217. [Python]로프Python_알고리즘/Silver IV 2023. 1. 29. 13:47
1. 문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 192MB 리스트 정렬, 탐색 3. 파이썬 코드 N = int(input()) # 로프 리스트 생성 lope_list = [] for _ in range(N): lope_list.append(int(input())) # 로프 리스트를 큰순으로 정렬함 내림차순(큰거=>작은거) lope_list.sort(reverse=True) # ..