본문 바로가기

백준

1260 DFS와 BFS C번 문제가 BFS문제인데 아직 BFS 코드도 짜보지 않아서,,, 연습 겸 쉬운 bfs 구현문제를 풀어보았다. https://burningjeong.tistory.com/283?category=852372 BFS 너비 우선 탐색 #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair ; using ii6.. burningjeong.tistory.com https://burningjeong.tistory.com/208 DFS 깊이 우선.. 더보기
15809 전국시대 1717번 풀면서 음~ 쉽네 하다가 조금 응용 나오니 어려웠다ㅋㅋ 처음 쓰는 자료구조라 낯설음 #include #include #include using namespace std; vector parent; vector num; void init(int n) { parent.resize(n + 1); num.resize(n + 1); for (int i = 1; i num[y]) { num[x] -= num[y]; parent[y] = x; } else if (num[x] < num[y]) { num[y] -= num[x]; parent[x] = y; } else { num[x] = 0; num[y] = 0; } } int main() { int n, m; scanf("%d %d", &n, &m); in.. 더보기
1717 집합의 표현 union find 연습문제로 풀었던 거 #include #include using namespace std; vector parent; void init(int n) { parent.resize(n + 1); for (int i = 0; i 더보기
2239 스도쿠 전에 마천루 문제 푼 적 있어서 음~~ 쏘 이지~~ 하면서 풀려고 했는데.. ㅋㅋㅋ ㅜㅜ ㅁㅁㅋㅋ 막혔음 푸는 건 N퀸이랑 비슷하다. 백트레킹 사용해서 하나 둬 보고 맞는지 확인하고 두고 쭉쭉 하면 풀리는데..! 막혔다. 정확히는 어디서 막혔냐면 0인 부분만 둬야 하는데 0에 1을 두는 순간 이걸 빈칸으로 인지를 못하고 넘어간다. 블로그 적으면서 생각 났는데 그냥 장애물 배열 하나 더 두는 게 좋을 것 같다. 의지가 있으면 오늘 하고 아니면 내일 해야지. 요즘 기력이 없어서 걱정임. 항상 밖에서 공부하거나 아니면 친구랑 공부하거나 하는데 코로나 때문에 아무것도 못하고 혼자 집에만 있음; 내일은 행아웃으로 사이버 인기척이라도 느껴야지. #include #include using namespace std; .. 더보기
2447 별 찍기 - 10 ㅋㅋㅋ ㅋㅋ ㅋㅋㅋㅋ 아니 이 무슨 해괴한 문제냐고 아악 시도 1 void search(int i) { if (i == 1) { printf("***\n"); return ; } if (i == 2) { printf("* *\n"); return ; } if (i == 3) { printf("***\n"); return ; } search(i - 1); search(i - 2); search(i - 3); } int main() { int i; scanf("%d", &i); search(i); return (0); } 음... 출력해보니 아닌 것 같다. 시도 2 #include using namespace std; void search(int n) { if (n == 1) { printf("*"); re.. 더보기
15652 N과 M (4) 문제를 이렇게 날로 먹어도 될까 #include #include using namespace std; void print_vector(int m, vector v) { for (int i = 0; i < m; i++) { printf("%d ", v[i]); } printf("\n"); } bool promising(int index, vector v) { for (int i = 1; i v[i]) return (false); } return (true); } void find_sequence(int index, int n, int m, vector v) { if (index == m) print_vector(m, v); else { for (int i = 1; i 더보기
15651 N과 M (3) 엥 뭐지..? 이게 1번이 되어야 하는게 아닌가? 걍 다 출력하는데??? 뭐지??? 왜지?? #include #include using namespace std; void print_vector(int m, vector v) { for (int i = 0; i < m; i++) { printf("%d ", v[i]); } printf("\n"); } void find_sequence(int index, int n, int m, vector v) { if (index == m) print_vector(m, v); else { for (int i = 1; i 더보기
15650 N과 M (2) N과 M (1) 앞의 문제와 차이라면 promising 부분.. 오름차순인지 확인하는 걸 추가했다. #include #include using namespace std; void print_vector(int m, vector v) { for (int i = 0; i < m; i++) { printf("%d ", v[i]); } printf("\n"); } bool promising(int index, vector v) { for (int i = 1; i v[i]) return (false); for (int j = 0; j < i; j++) { if (v[i] == v[j]) return (false); } } return (true); } void find_sequence(int index, int .. 더보기