ALGORITHM
Posts
18 posts[c++]10799번 쇠막대기 / stack
문제는 굉장히 어려워 보이나 규칙성을 찾는다면 스택을 이용해 간단하게 해결할 수 있는 문제이다. 입력받은 string을 순차적으로 검사해괄호 ( 가 있다면 스택에 추가하고,괄호 ) 가 있다면 레이저에 의한 ')'인지 쇠막대기에 의한 ')'인지확인하여 각각의 경우를 처리해주면 된다. 레이저에의한 ) 괄호 같은 경우엔 겹쳐져있는 막대기를 한번에 자르는 것이므로 스택에 남아있는 ' ( ' 의 수를 추가하면 될 것 같다.또한 레이저가 끝났으므로 pop을 하여 앞에 남아있는 레이저의 ( 괄호 또한 삭제해준다. 쇠막대기에 의햔 ) 괄호는 쇠막대기가 끝났다는 것을 의미하므로 결과에 +1을 추가해주고, 쇠막대기의 시작을 알려주는 ( 괄호를 pop해준다. 결과값 출력을 해주면 정답을 얻어낼 수 있다. 1
[c/ c++]1,2,3 더하기-2가지 방법
백준 알고리즘의 1,2,3 더하기 문제이다. dynamic을 이용하여 풀었다.이 문제를 풀땐 점화식을 세우고 그 점화식을 통해 문제를 해결해야한다. N이라는 숫자를 만들려면 N = ? + ? + ? + .... + ? + 1 로 만드는 방법 1. N = N-1 + 1N = ? + ? + ? + .... + ? + 2 로 만드는 방법 2. N = N-2 + 2N = ? + ? + ? + .... + ? + 3 로 만드는 방법 3. N = N-3 + 3 3가지가 존재한다. f(N)을 N으로 만드는 개수라고 할때, f(N) = f(N-1) + f(N-2) + f(N-3)으로 나타낼 수 있다. 다음은 topdown을 이용해서 풀어본 코드. [c++] - topdown123456789101112131415

Basel problem
Basel problem . 파이썬, 포트란 90 컴퓨터 프로그램을 활용하여 수치적으로 위의 공식의 타당성을 체크해보고자 한다.특히, 파이썬 언어로 작성된 컴퓨터 프로그램의 계산 속도 향상을 위하여 pypy를 사용해 본다.http://pypy.org/ cat basel.py #!/usr/bin/env python #Basel problem import timedef recip_square(i): return 1./i**2def approx_pi(n): val = 0. for k in range(1,n+1): val += recip_square(k) return (6 * val)**.5start=t
[c++] 1로 만들기 / dynamic programming topdown
질문 검색1로 만들기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB4470614447947332.491%문제정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최소값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최소값을 출력한다.예제 입력 1 복사2예제 출력 1 복사1예제 입력 2 복사10예제 출력 2 복사3힌트10의 경우에 10 -> 9 -> 3 -> 1 로 3번 만에 만들



