반응형 [백준]214 [BaekJoon/백준] 14889번 & 다시보기 ★★★★★ 이 문제를 통해 벽을 느꼈다. 세상에는 정말 똑똑한 사람들이 많다. 문제를 코드로 구상하는 과정에서, 최대한 코드를 줄여서 짜고 싶었다. 그리고 일단 문제는 조합 + 순열 로 풀 생각이였다. 1 ~N 까지 N/2 개 뽑아서 한 팀 만들고, 그 값을 또 순열을 시행한 뒤에 한 팀의 값을 얻어낸다. 그리고 조합으로 뽑은 값을 반전시켜준 뒤 다시 수열을 시행하여 다른 팀의 값을 얻어낸다. 위 방식대로 코드를 구성하여서, 시간도 오래걸려서 풀긴 했는데 코드가 너무 무거웠다. 그래서 다른 분들의 코드를 찾아보기 시작했고, 벽을 느꼈다. 일단, 나의 코드에서 꺼림칙한 부분이 두 군데 있었다. 1. 조합 + 순열 방식으로 푸는게 맞는지 2. 배열은 얼마나 필요한지 3. 조합으로 뽑을 때, A팀이 1 2 3이고 B팀이.. 2020. 12. 11. [BaekJoon/백준] 14888번 삼성 SW 기초역량문제라고 한다. 순열 느낌의 문제. 처음에는 3 3 2 4 같은 각각의 연산자가 여러 횟수의 경우에는, 한번 뽑고 지나치지 않도록 해줘야 되는 줄 알았는데 사실 0번째 +를 뽑던 1번째 +를 뽑던 결과는 똑같은 +를 뽑은 순열로 나열된다. 어차피 재귀로 돌아가므로 알아서 다른 경우의 수를 뽑아주게 되어있다. 괜한 걱정을 했다! 직접 돌려보니 그러지 않아도 된다는 이해가 되었다. #include #include int *p; int *oper_order; // 연산자를 차례로 저장할 배열 int n; int oper[4]; int min = 1000000001; int max = -1000000001; void save() { int result = p[0]; for(int i = 1; .. 2020. 12. 9. [BaekJoon/백준] 2580번 스도쿠 문제다. 정답률 29퍼센트인걸 보고 몸을 떨었다. 근데 이게 중등 초등 올림피아드 문제라니.. 문제를 풀면서 느낀점이 두가지 있다. - 문제가 풀리지 않거나 헷갈릴 때, 브레이크 걸고 일일이 디버깅해보는 것이 시간이 오래 걸리긴 하지만 문제풀이엔 정말 도움이 된다. - 그리고 항상 느끼는 거지만, 풀고 다른 사람들의 풀이를 봐야 내 실력이 느는 것 같다. 일단 아래는 내가 짠 코드다. 좀 길다. #include #include // 현재 써도 되는 것들을 모아서 만들어 놨다가, 거기서 하나씩 뽑아가며 재귀 // 넣을 수 있는 값을 찾는 포문 안에서, 값을 찾을 때마다 재귀호출. // 하나의 재귀에서 하나의 셀을 맡음. int sdo(int **a, int x, int y) { int temp[10.. 2020. 12. 8. [BaekJoon/백준] 9663번 N 퀸 문제다. 이전에 공부했던 8퀸문제의 변형문제이다. 8이 아닌, 입력받는 숫자로 동적으로 동작하게 끔 변경해준다. #include #include int *flag_a; // 각 행에 퀸을 배치했는지 체크하는 배열 int *flag_b; // 대각선 /에 퀸을 배치했는지 체크하는 배열 int *flag_c; // 대각선 \에 퀸을 배치했는지 체크하는 배열 int *pos; // 각 열에서 퀸의 위치 int n; // n x n int cross_n; // 대각선 체크를 위한 배열 사이즈 int count = 0; // 경우의 수 // i 열에서 알맞은 위치에 퀸을 배치 void set(int i) { int j; for(j = 0; j < n; j++) { if(!flag_a[j] && !flag_.. 2020. 12. 7. 이전 1 ··· 38 39 40 41 42 43 44 ··· 54 다음 반응형