Hyuk(199)
-
[백준 4883번] 삼각 그래프
소스코드1234567891011121314151617181920212223242526272829303132#include using namespace std; int Min(int a, int b) { return a > b ? b : a;} int main() { int n, dp[100001][3], tc = 1; while (1) { cin >> n; if (!n) break; for (int i = 0; i dp[i][j]; } } dp[1][0] = dp[1][0]+dp[0][1]; dp[1][1] = Min(dp[1][1]+dp[1][0],Min(dp[0][1]+dp[0][2]+dp[1][1], dp[1][1]+dp[0][1])); dp[1][2] = Min(dp[1][1]+dp[1][2], ..
2017.08.15 -
[백준 1057번] 토너먼트
소스코드1234567891011121314#include using namespace std; int main() { int N,a,b,cnt=0; cin >> N >> a >> b; while (a != b) { a = a / 2 + a % 2; b = b/2+b%2; cnt++; } cout
2017.08.14 -
[백준 3055번] 탈출
풀이BFS로 풀면 되지만 조건 중에 고슴도치는 물이 찰 예정인 칸으로 이동할 수 없다고 되어있기 대문에 고슴도치의 이동보다 물의 이동이 항상 1만큼 빨라야한다. 그래서 BFS를 돌때 물을 먼저 1칸 이동후 고슴도치를 이동시키면 해결할 수 있다. 소스코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107#include using namespace std; int se, ga;cha..
2017.08.09 -
[백준 7490번] 0 만들기
풀이공백, +, - 를 재귀를 통해 다 넣어보고 부호가 n-1개 만큼 채워졌을 경우 0이 만들어지는지 연산해본다. 출력의 숫자는 항상 1부터 n까지 오름차순이므로 따로 저장하지 않는다. (char배열로 입력해두어도 되지만 나중에 공백을 처리하기가 어려워진다.) 소스코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485#include using namespace std; int n;char w[10]; int make(int x, int y) { int ret=x; for..
2017.08.08 -
[백준 1992번] 쿼드트리
푸는 방법1. 재귀를 통해 왼쪽위, 오른쪽위, 왼쪽아래, 오른쪽아래 총 4등분을 시키면서 스택에 쌓아둔다. 2. ) -> 닫히는 괄호를 써야할때 겹치는 숫자가 있는지 판별하고 닫는다.2-1. 겹치는 숫자가 1이라면 괄호를 열리는 괄호랑 닫히는괄호를 다없애고 1만 스택에 다시 쌓는다.2-2. 겹치는 숫자가 0이라면 괄호를 열리는 괄호랑 닫히는괄호를 다없애고 0만 스택에 다시 쌓는다. 소스코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687#include using..
2017.08.01 -
[백준 9935번]문자열 폭발
소스코드1234567891011121314151617181920212223242526272829303132333435363738#include using namespace std; char word[1000001],fire[37],st[1000001];int word_length = 0, fire_length = 0,sp=0; void search() { for (int i = 0; i = sp - fire_length, k>=0; j--,k--) { if (st[j] == fire[k]) cnt++; } if (cnt == fire_length) sp -= (fire_length); } }} int main() { ios::sync_with_stdio(false); cin >> word; cin >> ..
2017.07.28