티스토리 뷰
1. shuffle
1-1. 배열
같은 타입의 변수들을 모아 번호를 붙여 놓은것으로
int num[10] ; 의 형태로 쓸 수 있다.
int num [10] ; 은 int 형 변수를 10개모아 num[0]부터 num[9]까지의 10개의 변수를 모아놓은 배열이라고 할 수 있다.
그림을 통해 보면
으로 볼 수 있다.
1-2. 배열의 원소 섞기의 원리
배열의 원소를 섞기 위해선 임의의 배열 원소 2개를 뽑아 자리를 바꿔주는 행동을 여러번 반복하면 된다.
예를들어
int num[10] = {0,1,2,3,4,5,6,7,8,9};
위의 배열은 0부터 9로 초기화되어있는 배열 num이다.
그림으로 보면 아래와 같이 되어 있다.
원소를 섞는방법은 num[1]의 원소와 num[7]의 원소를 뽑아 서로 자리를 바꿔주는것이다.
두 값을 바꿔주기위해 temp라는 변수가 필요하다.
temp에 num[1]의 값을 저장해놓고, num[1]에 num[7]값을 넣고, num[7]에 temp에 저장해놓은 num[1]의 값을 저장해놓으면 된다.
temp를 사용하는 이유는 temp에 num[1]의 값을 저장하지 않은채로 num[7]의 값을 num[1]에 넣으면
위의 그림과 같이 num[1]에 있던 1이 사라지기 때문이다.
num[1]의 값을 잠시 temp 에 저장 해놓으면 위의 그림과 같이 되어도 temp에 num[1]의 값이 저장되어 있기 때문에 num[7]에 num[1]의 값이었던 1을 넣을 수 있게 되는것이다.
int temp;
temp = num[1];
num[1] = num[7];
num[7] = temp;
위의 소스와 같이 사용할 수 있다.
실행 한다면
그림과 같이 num[1]과 num[7]의 값이 바뀐것을 볼 수 있다.
위와같은 방법을 여러번 반복하면 배열 num의 원소들은 섞일 것이다.
1-3. 배열 원소 섞기
1-2의 과정을 여러번 반복하기위해 for문을 사용하면 된다.
아래의 전체 소스코드를 참고하면 된다.
#include <iostream>
#include <time.h> //rand()함수를 사용하기위해 추가한다.
using namespace std;
int main() {
int num[10]; // int형 size가 10인 배열을 선언
for(int i=0; i<10; i++) { // 배열 num을 0~9로 초기화하는 for문
num[i] = i;
}
for(int i=0; i<10; i++) { // 배열의 원소를 출력한다.
cout << num[i] << " " ;
}
cout << endl;
srand(time(NULL)); // 랜덤한 수를 발생하기 위해 사용한다.
for(int i=0; i<30; i++) { // 섞는작업을 30번 반복하기 위한 for문
int randNum1 = rand() % 10; //0~9까지의 랜덤한 수를 발생한다.
int randNum2 = rand() % 10;
int temp;
temp = num[randNum1];
num[randNum1] = num[randNum2];
num[randNum2] = temp;
}
for(int i=0; i<10; i++) { // 배열의 원소를 출력한다. 섞인 배열을 확인할 수 있다.
cout << num[i] << " " ;
}
cout << endl;
return 0;
}
'C++' 카테고리의 다른 글
20160504_문자열 (0) | 2016.05.06 |
---|---|
20160503_야구게임만들기 (0) | 2016.05.04 |
20160428_제어문, 제어문활용하기 (0) | 2016.04.29 |
20160427_반복문 활용, 배열 (0) | 2016.04.28 |
20160426_반복문 (0) | 2016.04.26 |
- Total
- Today
- Yesterday
- Unreal
- 클라이언트 면접
- 기술면접
- 언제어디서나요요
- 유니티 a href
- ngui 스크롤뷰 파티클
- ngui 파티클
- 직군면접
- ngui scrollview particle
- 구글 스프레드시트 드롭다운
- Library/PackageCache
- 내돈내산
- 유니티 개발자 면접
- 연결리스트
- C#
- 도서대출프로그램
- c언어
- UPROPERTY
- particle cliping
- 베이비젠요요
- ngui 스크롤뷰
- scrollview particle
- 스토케요요
- 값형식과 참조형식의 차이
- 유니티 Library
- 휴대용유모차
- 유니티 텍스트 하이퍼링크
- 연말정산
- 성남돌잔치
- ngui 스크롤뷰 파티클 클리핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |