본문 바로가기

백트래킹2

[BOJ] N과 M(1), next_permutation풀이 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백트래킹으로 푸는걸 떠나서, next_permutation으로 어떻게 풀어야 할지 감이 잘 오지 않았다. 코드를 짧게해서 조합을 구할때처럼 뭔가 깔끔한 N! 풀이가 없나? 싶었다. 조합은 {0,0,0,1,1}로 두고 5C3을 한번에 출력할 수 있지만, 순열은 그렇지 않다. ​ 특히 next_permutation은 5명중에 순서고려 X해서 5명 다 세우는건 쉽게 할 수 있다. 하지만, 4P2 이런.. 2021. 11. 8.
[BOJ] 15683. 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 배운점 : barking dog 님의 풀이(4진법으로 풀기)는 굉장히 아름다운 풀이였다. 스스로 풀었는데, 난 백트래킹이라고 생각하는데 pruning이 없어서 그냥 완전탐색이다. 근데 난 머리속에 이 그림을 상상하며 풀었다. 이걸 손으로 구현하면 풀리겠다고 생각했다. 1. std::copy로 배열복사하는법 배웠다. (지정한 배열사이즈만큼 복사해야한다) int board_copy[10][.. 2021. 8. 31.
728x90