본문 바로가기

백트래킹10

[백준][백트래킹] 15650 N과 M NodeJs 구현 목차https://www.acmicpc.net/problem/15650문제  문제 구현 방향조합을 통해 모든 경우의 수를 세서 출력해 주었다. NodeJs로 알아가면 좋은 것들1. process.stdout.write console.log는 줄바꿈이 있기 때문에 이것을 사용하면 줄바꿈을 없앨 수 있다.하지만 숫자는 안되니 string으로 바꾸어 주어야 한다.process.stdout.write(String(combinations[i][j])); 2. push시 객체 복사 배열이나 객체는 참조 타입이기 때문에, 단순히 배열이나 객체를 추가하면 그 배열이나 객체의 참조값만 저장된다. 이 참조값은 원본 배열 또는 객체가 변경되거나 초기화되면 영향을 받게 되어 undefined가 출력될 수 있다. combin.. 2024. 10. 14.
[백준][완전탐색] 17070 파이프 옮기기 c++구현 목차https://www.acmicpc.net/problem/17070문제 문제 구현 방향 처음에는 dp로 시도했다가 문제를 풀다보니 완전탐색으로 방향성이 바뀌어 버렸다..파이프 옮기기2가 있다는데 그거는 dp로 풀어보아야 겠다.각 끝점에서 이동할 수 있는 좌표를 저장해주고 그거 대로 탐색한 뒤에 원복해서 백트래킹을 해주었다.  문제 구현 시 주의점완전 탐색으로 하면 시간을 더 줄여야 맞을 수 있다. 그래서 나는 좌표가 끝점에 도달했을 때 특정 방향이면재귀가 종료하게끔 더 추가하였다.     코드 구현#include #include #include#include#include #includeusing namespace std;//pipe 구조체typedef struct Pipe { int x; .. 2024. 9. 23.
[백준][브루트포스] 14888 연산자 끼워넣기 c++구현 목차https://www.acmicpc.net/problem/14888문제 코드 구현 방향나는 범위를 보고 모두 다 할 수 있다고 판단이 들었고 그래서 모든 경우를 구한 뒤 연산을 해주는 방식으로 풀었다.또한 계산을 할때는 stack을 이용해 연산하였다.    코드 구현#include #include #include#include#include #includeusing namespace std;typedef long long ll;int T;int arr[13] = { 0 };ll Maxsize = -1000000004 , Minsize = 1000000004;//계산해주는 함수ll converCacul(ll a, ll b, char c) { switch (c) { case '+': .. 2024. 9. 22.
[백준][백트래킹][브루트포스] 15683 감시 c++구현 목차 https://www.acmicpc.net/problem/15683문제 문제 구현 방향 CCTV의 최대 개수는 8개를 넘지 않는다. 이 부분이 핵심 포인트였다... 문제를 제대로 읽지 않고 완전 탐색 불가능한거 아니야? 하면서 그리디로 돌아갔다가 한참 헤맸다 ㅜ 문제는 꼼꼼히 읽어야 된다.  문제 아이디어그냥 백트래킹 잘 해주면 풀린다. 아이디어는 복구를 하기 위한 좌표를 저장해 놓고 저장해 놓은 좌표를 바탕으로 복구하면 된다.  코드 구현#include #include #include#include#include using namespace std;//cctv 구조체typedef struct CCTV { int num; int x; int y;}CCTV;//상 하 좌 우int dx.. 2024. 9. 19.
728x90