전체 글139 15663 N과 M(9) (C++) 이 문제는 그 동안의 문제들과는 조금 다른 결의 문제였다. 뭐 구동되는건 똑같지만, 다른점이라면 먼저 나왔던 수열은 중복 되면 안된다라는 것이었다. 이것에 대한 해답은 다음과 같다. #include using namespace std; #define endl '\n' int n,m; int board[10]; int arr[10]; int isused[10]; void func(int k) { if(k == m) { for(int i = 0; i m; for(int i = 0; i > board[i]; } sort(board,board+n); func(0); } 중간에 보면 for문 안에 조건문이 존재하는데, 바로 board[]의 현재 배열.. 2021. 4. 26. 15656 N과M (7) (C++) N과 M 시리즈 문제가 생각보다 재밌다. (뭐 잘 풀려서 그런거지..이러다가 안풀리면 재미없다고 한다 또) 아무튼. 이 문제는 itlearning.tistory.com/entry/15651-N%EA%B3%BC-M3-C 15651 N과 M(3) (C++) 음... 일단 내가 생각한건 이거다... 기존의 백트래킹은, 그냥 한번 올라가거나, 뿌리 내려지기 전의 수부터 시작을 하지 않는다고 생각했다. 그래서 아얘 그냥 위부터 쭈우우우욱 올라가서 다시 itlearning.tistory.com 이 문제와 똑같다. 단지 수열을 내가 입력하는 것이 추가된 것 뿐. 그래서 이 문제의 답을 참고해서 코드를 작성했다. 문제의 해결법은 이렇다. 원하는 수열을 입력받고, 입력받은 수열을 배열에 저장한 뒤, 출력하는 수열을 따로.. 2021. 4. 26. 15654 N과M (5) (C++) 아 점점 손에 익어간다 진짜로... 어떻게 구동 되는지 보인다.. 거두절미하고. 이 문제는 기존에 입력이 N개의 자연수 중에서 M개의 수열을 출력하는 것이었다면, 이건 수열을 직접 골라서 출력해야 한다. 그리고 그냥 수열을 나열하는게 아니라, 사전 순으로 증가하는 순서로 출력까지. 근데 이건 생각보다 간단하다. 그냥 입력을 받을 board[] 배열 하나, 받은 입력을 순열로 표현할 arr[] 배열. 그리고 방문의 여부를 확인해주는 isused[] 배열을 이용하면 끝이다. #include using namespace std; #define endl '\n' int n,m; int board[10]; int arr[10]; int isused[10]; void func(int k) { if(k == m) {.. 2021. 4. 25. 15652 N과M (4) (C++) 아아 점점 손에 익어가는 듯 싶다. 전 문제는 솔직히 찍어서 맞춘감이 없었지만, 이건 정말 "이렇게 하면 어떨까?" 라는 사고를 꺼냈다. itlearning.tistory.com/entry/15651-N%EA%B3%BC-M3-C 15651 N과 M(3) (C++) 음... 일단 내가 생각한건 이거다... 기존의 백트래킹은, 그냥 한번 올라가거나, 뿌리 내려지기 전의 수부터 시작을 하지 않는다고 생각했다. 그래서 아얘 그냥 위부터 쭈우우우욱 올라가서 다시 itlearning.tistory.com 위의 이전문제와 다른점은, 출력하는 숫자가 늘어가며 출력되는 숫자 또한 바뀐다는 것이다. 하나 늘어날 때마다 그 숫자부터 출력할 수 있게 하는 것이다. 이건 생각보다 간단했다. 그냥 진행되는 for문에 변수를 이중.. 2021. 4. 25. 15651 N과 M(3) (C++) 음... 일단 내가 생각한건 이거다... 기존의 백트래킹은, 그냥 한번 올라가거나, 뿌리 내려지기 전의 수부터 시작을 하지 않는다고 생각했다. 그래서 아얘 그냥 위부터 쭈우우우욱 올라가서 다시 출력하고 쭈우우욱 올라가서 출력하고..를 원했다. 그래서 그걸 표현한 코드가 있다. 근데 왜 작동 되는건지 모르겠다.. 어떻게든 이해해보자. #include using namespace std; #define endl '\n' int n,m; int board[10]; int isused[10]; void func(int k) { if(k == m) { for(int i = 0; i m; func(0); } 자. 먼저 들어가서 수를 넣고, 방문했다라는걸 표현하는 isused의 배열.. 2021. 4. 25. 7562 나이트의 이동 (C++) BFS로 풀면되는 문제였다. 그.. 근데 조금 다른거라면, 종료되는 조건이 있다라는 것이다. 보통의 BFS 문제들은 미로통과하기, 다 채워질때의 최솟값 등을 물어보는데, 이건 목적지가 정해져 있고, 나이트가 그 지점으로 이동했을 경우의 수를 리턴하는 문제였다. 구조는 기존의 BFS 문제와 같다. 조건문만 추가 해주고 리턴할 수 있게 해주면 된다. (함수로 나누지 않았다. 일단 구현이 먼저라고 생각해서.. 나중에 시간이 된다면 나누는 작업을 진행하겠다. 코드에 나오는 X,Y 는 pair의 기능인 first, second 의 단축어이다. #define으로 설정해놨으니 헷갈리지 말길 바란다. 그리고 pair에 추가하는 x,y 좌표는 솔직히 x를 먼저 추가하든 y를 먼저 추가하든 상관없는 것 같다. 일단 내가 .. 2021. 4. 25. 이전 1 ··· 11 12 13 14 15 16 17 ··· 24 다음 IT_learning's Commit