Programming/Algorithm 237

[백준] #10952 while(true) c++

이제 백준을 C++로 풀어보기로 하였다. 오늘부터 새로운 마음으로 시작해보자. https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net while 문으로 문제를 풀이하였다. using namespace는 사용하지 않는다. #include int main() { int a, b; while(true){ std::cin >> a >> b; if(a == 0 and b == 0){ break; } std::cout

[백준] #1541 Greedy Algorithm python

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net Greedy Algorithm import sys input = sys.stdin.readline data = input().split('-') ans = 0 for i in data[0].split('+'): ans += int(i) # print(ans) for i in data[1:]: for j in i.split('+'): ans -= int(j) print(ans)

[백준] #5585 Greedy Algorithm python

https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net Greedy Algorithm 이용해 풀이 def main(): n = int(input()) coin = [500,100,50,10,5,1] count = 0 for c in coin: count += n // c n %= c print(count) if __name__ == "__main__": main()

[백준] #11722번 Dynamic Programming python

https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 이것은 가장 긴 증가하는 부분 수열의 반대 버전이다. 코드는 아래와 같다. import sys num = int(input()) num_list = list(map(int, sys.stdin.readline().rstrip().split())) dp = [0 for i in range(num)] for i in range(..

[백준] #15988번 Dynamic Programming python

https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 위 dp 문제를 아래와 같이 풀어보았다. num까지 필요한 것을 점화식에 의해서 풀어보았다. 코드는 아래와 같다. 추가 정보는 아래 링크를 확인하길 바랍니다. https://janghan-kor.tistory.com/71 [백준] #9095번 Dynamic Programming python https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는..

[백준] #9095번 Dynamic Programming python

https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net DP로 점화식으로 풀어내는 문제이다. 해당 문제를 풀기 위해서 손으로 써보길 바란다. number가 1일 경우 1 : 1 number가 2일 경우 2 : 1 + 1 2 : 2 number가 3일 경우 3 : 1 + 1 + 1 3 : 1 + 2 3 : 2 + 1 3 : 3 number가 4일 경우 4 : 1 + 1 + 1 + 1 4 : 1 + 1 + 2 4 : 1 + 2 + 1 4 : 2 + 1 + 1 4 : 3 + 1 4 : 1 + 3 4 : 2 + 2 위와 같이 1, 2, 4, 7, 13, ...

[백준] #11053번 Dynamic Programming python

https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net DP문항 풀이. 증가하는 부분 수열. 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 코드는 아래와 같다. import sys num = int(input()) num_list = list(map(int, sys.stdin.readline().rstrip().split())) dp ..

[백준] #1149번 Dynamic Programming python

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net DP문제로 분류 되며, 거리 구하기 문제이다. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 코드는 아래와 같다. def main(): n = int(input()) dp = [] for _ in range(n): dp.appe..