목록Problem Solving/Baekjoon (10)
kar7mp5
https://www.acmicpc.net/problem/11725#include #include #include #define MAX 100001using namespace std;using vi = vector;using ll = long long;ll N;vi graph[MAX];int visited[MAX];int result[MAX];void bfs(int start);int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); cin >> N; int a, b; fo..
https://www.acmicpc.net/problem/17070#include #include using namespace std;using ll = long long;#define MAX 16int N;int MAP[MAX][MAX];ll dp[3][MAX][MAX];/*0: -->, 1: \, 2: |*/int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);/* freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);*/ cin >> N; for (int i = 0; i > MAP[i][j]; dp[0][0][1] = 1; f..
https://www.acmicpc.net/problem/10986 다음과 같이 코드를 작성하게 되면, 시간초과로 실패하게 된다.#include #include using namespace std;vector v;int mem[1'000'000];int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, M; cin >> N >> M; int input; for (int i = 0; i > input; v.push_back(input); } int result = 0; for (int j = 0; j 그렇기 때문에 새로운 방식인 누적합으로 문제를..
https://www.acmicpc.net/problem/1158 뭔가 매우 불필요한 방식으로 문제 해결한 거 같습니다.그래서 코드만 참고하시면 좋을 거 같습니다. #include #include using namespace std;void print_result(vector &v) { cout ';}int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, K; cin >> N >> K; vector v; for (int i = 0; i result; int idx = K - 1; for (int i = 0; i
https://www.acmicpc.net/problem/1377처음에 준 예제로 문제 풀었다가 시간 초과가 발생했다. 그래서 정렬되기 전과 후를 비교해서 각 값들이 얼만큼 이동했는 지 계산해보고 최대값만 선별하여 문제를 해결했다.이거는 좋은 문제인 것 같아서 시험 끝나고 풀이를 다시 작성해볼 예정이다.#include #include #include #include using namespace std;using pii = pair;using vpii = vector;#define MAX 1000001int N;vpii A;int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N; int x; for (..
https://www.acmicpc.net/problem/9935import sysinput = sys.stdin.readlinetext = list(input().strip())bomb = list(input().strip())li = []for i in text: li.append(i) if li[len(li)-len(bomb):] == bomb: for _ in range(len(bomb)): li.pop()if li: print(''.join(li))else: print("FRULA")
https://www.acmicpc.net/problem/1967#include #include #include #include using namespace std;using pii = pair;using vpii = vector;#define MAX 10'001int N;vpii MAP[MAX];bool visited[MAX];int max_dist = 0;int fst_max_node;void dfs(int start, int dist) { if (visited[start]) return; if (max_dist > N; N--; int u, v, l; while (N--) { cin >> u >> v >> l; MAP[u].push_b..
https://www.acmicpc.net/problem/1167#include #include #include #include using namespace std;using pii = pair;using vpii = vector;#define MAX 100'001int N;vpii MAP[MAX];bool visited[MAX];int max_dist = 0;int fst_max_node;void dfs(int start, int dist) { if (visited[start]) return; if (max_dist > N; int u; while (N--) { cin >> u; while (true) { int v, l; ..
https://www.acmicpc.net/problem/16953#include using namespace std;using ll = long long;ll A, B;int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> A >> B; int cnt = 1; while (true) { if (A == B) { cout B) { cout
문제 링크:https://www.acmicpc.net/problem/1991 Tree에서 0번 index는 left child를 1번 index에는 right child로 두고 순회를 진행했다. #include using namespace std;int N;char MAP[27][2];void preorder(int N) { if (N == -1) return; cout > N; char parent, left, right; while (N--) { cin >> parent >> left >> right; int pIdx = parent - 'A'; // left node if (left == '.') ..