본문 바로가기

분류 전체보기

(842)
[백준 2504번] 괄호의 값 (C++) 문제링크 : https://www.acmicpc.net/problem/2504 #include using namespace std; int main() { string s; cin >> s; stack stack; int result = 0, cnt = 1; for (int i = 0; i < s.length(); i++) { if (s[i] == '(') { cnt *= 2; stack.push('(');} //(x) = 2*x else if (s[i] == '[') { cnt *= 3; stack.push('[');} //[x] = 3*x else if (s[i] == ')') { if (stack.empty() || stack.top() != '(') { result = 0; break; } //스..
[백준 11725번] 트리의 부모 찾기 (C++) 문제링크 : https://www.acmicpc.net/problem/11725 #include using namespace std; int n; int arr[100001]; //트리의 부모 담을 배열 vector v[100001]; //해당 값에 연결된 값들을 갖는 배열 void dfs(int num) { for (int i = 0; i > n;..
[백준 2644번] 촌수계산 (C++) 문제링크 : https://www.acmicpc.net/problem/2644 #include using namespace std; int n, m; int n1, n2; vectorv[101]; int x, y; int result = 0; bool check[101]; void dfs(int cur, int end, int cnt) { check[cur] = true; if (cur == end) //해당 값 찾으면 카운트 저장 { result = cnt; } for (int i = 0; i < v[cur].size(); i++) { if (!check[v[cur][i]]) //v[cur][i]는 다음 값을 가리킴 { dfs(v[cur][i], end, cnt+1); //다음 값 부터 n2까지 탐색하..
[백준 4963번] 섬의 개수 (C++) 문제링크 : https://www.acmicpc.net/problem/4963 #include using namespace std; int w, h; int arr[50][50]; bool check[50][50]; int dw[8] = {0, 0, -1, 1, -1, -1, 1, 1}; //1 좌, -1 우 int dh[8] = { -1, 1, 0, 0, -1, 1, -1, 1 }; //1 상, -1 하 void dfs(int y, int x) { for (int i = 0; i = w || ny..
[백준 7562번] 나이트의 이동 (C++) 문제링크 : https://www.acmicpc.net/problem/7562 #include using namespace std; int n, x11, y11, x22, y22, length; //테스트 케이스, 첫 좌표, 찾을 좌표, 맵의 길이 int arr[300][300]; //체스 맵 배열 bool check[300][300]; //체스 맵 방문 여부 배열 int dx[8] = { -2, -1, 1, 2, -2, -1, 1, 2 }; // x좌표 int dy[8] = { -1, -2, -2, -1, 1, 2, 2, 1 }; // y좌표 void bfs(int x, int y) { queue q; q.push({ x, y }); check[x][y] = true; while (!q.empty())..
[백준 11060번] 점프 점프 (C++) 문제 링크 : https://www.acmicpc.net/problem/11060 #include using namespace std; int n, arr[1001], dp[1001]; int main() { cin >> n; for(int i=0; i> arr[i]; dp[i] = 999999999; //무작위 큰 수로 초기화 } dp[0] = 0; //첫 시작을 위한 초기화 for (int i = 0; i < n; i++) { for (int j = 1; j
[백준 2193번] 이친수 (C++) 문제링크 : https://www.acmicpc.net/problem/2193 #include using namespace std; int n; long long dp[91]; //크기가 커서 long long으로 선언 int main() { cin >> n; dp[1] = 1, dp[2] = 1; for (int i = 3; i
[백준 14501번] 퇴사 (C++) 문제링크 : https://www.acmicpc.net/problem/14501 #include using namespace std; int n; int t[16], p[16], dp[16] = {0}; int result = 0, sum = 0; int main() { cin >> n; for(int i=1; i> t[i] >> p[i]; //기간과 금액 입력 for (int j = 0; j < i; j++) //상담 기간이 현재 i보다 작은 것 찾기 { if (t[j] + j