프로그래밍겅부
주로 cout, cin 등 표준 입출력을 사용할때 using namespace std; 를 적는다 왜 적는것일까? 바로 std에 속한 내용을 사용할 것인데 소속(std::)을 알리지 않을 것이라면 std에 포함된 내용으로 간주할 것이라는 것을 의미하는 것이다 ! namespace 이름 {멤버 1;멤버 2;}이런 식으로 사용한다. 예를 들어 namespace fuc{int a = 100;int b = 200;}int a =0; cout
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq 고생 고생하면서 푼 문제 ... 일단 BFS로 풀어보려고 시도 해보았다. 그런데 등산로를 깎는 경우에 대한 저장 정보 처리가 복잡해지기 떄문에 DFS로 바꾸어 풀었다.. 문제의 제한 조건이 은근히 까다롭다 1. 제일 높은 등산로부터 등산로를 만들어야한다. 2. ★★ 최대 K 까지 깍을수 있으므로 꼭 K가 아닌 K보다 작은 수로 등산로를 깎을수도 있는 것 이 조건을 맞춰줘야 모든 테스트케이스에서 pass를 받을 수 있다. 3. visit 배열을 통해 다시 되돌아 가지 않도록 하자. 또 재귀가 풀릴때 방문을 해제하고, 길이도 줄여준다...
https://www.swexpertacademy.com/main/code/problem/problemSolver.do?contestProbId=AV4yLUiKDUoDFAUx 문제를 읽어보면 상당히 복잡한듯 해보이지만 원리는 간단하다 . 방향으로 진행하다가 특정 조건을 만나면 방향을 변경해준다. 처음에 visit 배열없이 DFS로 풀려다가 스택 오버플로가 나오길래 BFS로 풀었다. 근데 생각해보니 visit 배열을 통해 x,y, 방향, 메모리값이 중복되는 것을 검사한다면 DFS로도 풀수 있을 듯하다 . '?' 가 나왔을때 어떻게 처리할 것인가 생각하는게 이 문제의 키포인트 인듯... 나는 모든 방향에 대해 검사하는 것으로 처리 하였다 . 코드 1234567891011121314151617181920212..
https://www.swexpertacademy.com/main/code/problem/problemSubmitHistory.do?contestProbId=AV2b7Yf6ABcBBASw 고려사항 가장 낮은 탑의 크기와 선반의 높이의 차이로 정답을 구해야한다! 풀이 방법 무식하게 모든 경우의 수를 구했다. B명의 직원중 1명 뽑아서 해보고 2명 뽑아서 해보고 ...B-1 뽑아서 해보고 B명 뽑아서 모든 경우를 다 조사해보았더니 남들의 문제 풀이보다 훨씬 시간이 오래 걸리게되었다. PASS가 나오긴 했지만 좀 가지치는 방법을 강구해보아야겠다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505..
https://www.swexpertacademy.com/main/code/problem/problemSolver.do 시뮬레이션 구현에 가까운 문제이다. 완전 탐색 즉, DFS를 이용해서 core의 4방향으로 전선을 연결 할 수있는지 확인해보고 연결 후, 다른 코어들의 경우의 수를 따져 보았다. 고려 사항 1. 최대한 많은 Core에 전원을 연결해도, 전원이 연결되지 않는 Core가 존재할 수 있다. -> 생각을 조금만 해보면 굳이 연결 되지않는 Core에 대해 생각 안하고 4방향에 대한 조사만 해주어도 모든 경우를 따져 볼 수 있다는 사실을 알수 있다. 2. Core의 개수는 최소 1개 이상 12개 이하이다. -> 경우의 수는 최대 12^4가 나온다 . 코드 12345678910111213141516..