본문 바로가기

전체 글

(2344)
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 9084번:동전 답 1234567891011121314151617181920212223242526272829#include #include using namespace std;//d[i] = i번째 동전으로 m원을 만들 수 있는 경우의 수//d[i] = d[coin[j]]++//d[i] += d[i-a[j]] int coin[21],coinN, T, N, M,d[10001];int main() { cin >> T; while (T--) { cin >> N; memset(coin, 0, sizeof(coin));//동전 초기화 memset(d, 0, sizeof(d)); for (int j = 1; j > coin[j];//동전의 가치 입력 cin >> M;//만들어야 하는 금액 for (int i = 1; i
(C++) - 백준(BOJ)코딩 2056번:작업 답 www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net Code #include #include #include using namespace std; int n,t[10001],ind[10001],minTime[10001],workn,pwork,ans; vector a[10001]; int main() { queue q; cin >> n; for (int i = 1; i > t[i]; cin >> workn; for (int j = 0; j < workn;..
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 1766번:문제집 답 123456789101112131415161718192021222324252627282930313233343536#include #include #include #include using namespace std;int N, M,u,v,ind[32001];vector a[32001];priority_queue q;int main() { cin >> N >> M; for (int i = 1; i > u >> v; a[u].push_back(v); ind[v]++; } for (int i = 1; i
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2294번:동전2 답 //d[i] = i원을 만드는데 필요한 최소 동전의 개수//d[i] = d[i-a[j]]+ 1 (d[i-a[j]] !=-1 : d[i-a[j]]==-1라면 애초에 이 값을 만들수가 없다는 뜻이므로 -1이면 안된다)12345678910111213141516171819#include #include using namespace std;int n,k, a[101], d[100001],ans=-1;int main() { cin >> n >> k; for (int i = 1; i > a[i]; } for (int i = 1; i
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2293번:동전1 답 D[i][j] = i개의 동전을 활용하여 j원을 만드는 경우의 수 1.A[i]를 사용하는 경우 - > A[i-1]까지의 동전을 사용하여 j-A[i]원을 만들어야함 : D[i][j] += D[i-1][j-A[i]] 2.A[j]를 사용하지 않는 경우 - > A[i-1]까지의 동전을 사용하여 j원을 만들어야함 : D[i][j] += D[i-1][j]D[i] += D[i-1][j-A[i]] + D[i-1][j] 이는 1+1+2, 2+1+1, 1+2+1를 모두 다른 경우로 친다.그러므로 이를 막기 위해 D[i] += D[i-A[j]]1234567891011121314151617#include using namespace std;int n, k, a[101], d[10001];int main() { cin >> n..
(C++, Python3) - 백준(BOJ) 1697번 : 숨바꼭질 https://www.acmicpc.net/problem/1697📕 풀이방법📔 입력 및 초기화1. 수빈이의 좌표 n, 동생의 좌표 k를 선언 후 입력받습니다. 2. 현재 탐색할 경로정보를 저장할 deque dq를 선언 후 현재 수빈의 좌표와 시간 0을 초기값으로 넣어줍니다. 3. 각 좌표 check배열을 선언 후 0에서 10만까지 위치에 존재할 수 있으므로 10만1의 크기를 선언해줍니다.📔 풀이과정함수 bfs를 구현해줍니다.1. dq에서 원소를 pop해 현재 좌표 pos가 k인지 비교해 맞다면 해당 time을 반환합니다. 2. 수빈이 현재 좌표에서 갈 수 있는 곳은 x-1, x+1, x*2이므로 범위를 초과하지 않으며 해당 좌표가 방문하지 않았다면 방문처리 후 dq에 append해줍니다. * 도착..
(C++) - 백준(BOJ) 11403 : 경로 찾기(BFS) 답 #include #include #include #include using namespace std; int N,a[101][101],d[101][101],c[101][101]; queue q; void BFS(int t)//정점에 연결되어 있는 간선을 모두 본 후에 마지막에 자신을 거치는 경로가 있는지 살펴본다 { q.push(t); while (!q.empty()) { int x = q.front(); q.pop(); for (int i = 1; i > N; for (int i = 1; i a[i][j]; } for (int i = 1; i
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11403번:경로 찾기(DFS) 답 1234567891011121314151617181920212223242526272829303132333435363738#include #include #include #include using namespace std;int N,a[101][101],d[101][101],c[101][101],t;queue q;void DFS(int x)//정점 x에 연결되어 있는 모든 간선을 확인하고 경로에 등록한다{ for (int i = 1; i > N; for (int i = 1; i a[i][j]; } for (int i = 1; i