Algorithms102 [백준 2156번] 포도주 시식 문제 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 풀이 아이디어 DP 개념: 2023.08.27 - [Algorithms/이코테] - [Dynamic Programming] - 다이나믹 프로그래밍이란? / 문제 1로 만들기 # 포도주 잔의 개수 입력 받기 n = int(input()) # 포도주 list 입력 받기 + 여유 인덱스로 1 ~ n으로 맞춰주기 k = [0] + [int(input()) for _ in range(n)] + [0] .. 2023. 8. 29. [Dynamic Programming] - 다이나믹 프로그래밍이란? / 문제 1로 만들기 컴퓨터를 활용해도 해결하기 어려운 문제는 무엇일까? 최적의 해를 구하기에 시간이 매우 많이 필요하거나 메모리 공간이 매우 많이 필요한 문제 등이 컴퓨터로도 해결하기 어려운 문제이다. 컴퓨터는 연산 속도에 한계가 있고, 메모리 공간을 사용할 수 있는 데이터의 개수도 한정적이라는 점이 많은 제약을 발생시킨다. 그래서 우리는 연산 속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘을 작성해야 한다. 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있는 대표적인 방법 => 다이나믹 프로그래밍 다이나믹 프로그래밍(Dynamic Programming)이란? = 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법 🌟 다이나믹 프로그래밍 사.. 2023. 8. 27. [백준 2745, 11005번] 진법 변환1, 진법 변환2 문제 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 풀이 - 진법 변환 n, b = input().split() print(int.. 2023. 8. 18. [백준 2941번] 크로아티아 알파벳 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 풀이 words = str(input()) c_alpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] result = 0 for i in c_alpha: words = words.replace(i, '*') print(len(words)) 아이디어 입력받은 words가 크로아티아 알파벳 목록에 있는 알파벳을.. 2023. 8. 17. [백준 2869번] 달팽이는 올라가고 싶다.. 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 풀이 import sys import math a, b, v = map(int, sys.stdin.readline().split()) day = (v - b) / (a - b) print(math.ceil(day)) 아이디어 달팽이가 정상에 올라간 후에는 미끄러지지 않으므로 올라야 하는 나무 높이 = (v - b) 하루에 올라갈 수 있는 높이 = (a - b) (v - b) / (a - b)을 나눠 3.2일 걸린다는 소리는 4일 걸린다는 소리이므로 .. 2023. 8. 17. [백준 9093번] 단어 뒤집기 문제 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 풀이 - 처음 풀이 T = int(input()) for _ in range(T): statement = input().split() result = "" for word in statement: result += ''.join(reversed(word)) + ' ' print(result) 방금 전 반복해서 여러 개를 입력받아야 하는 상황에서는 sys.stdin.readline()을.. 2023. 8. 13. 이전 1 2 3 4 5 6 7 ··· 17 다음