본문 바로가기

알고리즘4

코딩의 알고리즘 이란..... 알고리즘 넌 알고리즘? 난 모르니즘 -대구부자씨집- 2020. 1. 23.
배열을 활용한 /C++/조세 퍼스 / 공주구하기 / 알고리즘/ 이번에 푼 문제는 알고르짐 문제에서 조금은 유명 한 문제 조세퍼스 관련 문제 입니다. 우선 문제에 대해서 설명을 하자면 첫번째 입력 되는 값 만큼 숫자가 차례대로 생기게 됩니다. 2번째 입력된 숫자는 2번째 입력한 숫자를 부른 사람이 아웃 되는 형식으로 아웃된 사람 다음 사람부터 다시 1부터 시작하여 입력 받은 값을 부르게 되는 사람이 아웃 되는 형식 입니다. 소스코드 맨아래 CPP파일을 첨부 하였습니다. 필요 하신분들은 다운받아 가세요. #include #include using namespace std; 병사의 수만큼 1부터 입력 받은 값만큼 배열에 집어 넣습니다. void setting(int array[], int &people , int &num) { cout people; cout num; f.. 2019. 12. 19.
C++ 선택정렬 아래는 C++ 선택 정렬에 대한 코드 이다.코드 의 주석과 함께 바로 코드 해석이 안되면 코드 아래 설명을첨부 드릴게요 ! 선택 정렬의 핵심은 , 배열의 첫 번째 요소 즉, 0번째 인덱스를 선택해서이외 다른 배열의 요소들과 비교 해가며최소 값을 먼저 찾는 것에 있다! 2중 포문의 사용 이유는 비교를 하기 위해서다. 즉) 첫번째 포문의 0번째 인덱스의 값을Min 값에 복사 한후,두번째 for문을 돌게 되면,배열의 사이즈가 5라고 가정 한다면,첫번재 포문 0번째Index 를 제외한 1,2,3,4 번째 인덱스와 비교 하게 되면서, 조건 문에서 min값이 두번째 포문의 인덱스 값 보다 크다면 ,안쪽에서 인덱스는 잠깐 복사를 해두고 min 값에는 값을 덮어씌워 버린다. 아래가 핵심이다!(덮어 씌워 버리는 이유는 .. 2019. 12. 3.
역 방향 행렬 360도 회전하기. 저의 경우 배열의 회전값을 얻기 위해 , 함수 하나를 만들어 , 원하는 각을 입력 받은 후 , 90을 나눈후 나눈 값을 리턴 하는 함수의 인자 값을 받아서 3중 포문으로 하였다. 더 좋은 방법이 있다면 댓글로 알려 주세요 ^^^.......... ㅠㅠㅠㅠ 역 방향으로 행렬을 회전 보았다. 행렬의 좌표는 (0,0) 을 시작으로 (0,4) 우측으로 0~4열 행렬의 좌표 는 (0,0) 을 시작으로 (4,0) 아래 방향으로 0~4행 5X5 행열이 있다. 행렬의 기준 점을 행으로 잡을지 열로 잡을지를 우선 정해야 한다. 가령) (0,0) ======> (0.0) (0,1) ======> (1,0) (0,2) ======> (2,0) (0,3) ======> (3,0) (0,4) ======> (4,0) 이동을 하.. 2019. 11. 25.