728x90
반응형
#include<stdio.h>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define NS 5// 배열의 최대 크기
int B[NS];//입력 배열
int N = 5;//숫자 입력 5개
int chkNum[] = { 1,2,3,4,5 };
void init_input(){//초기화 및 초기 입력
//초기화
N = 5;
memset(B, 0, sizeof(B));
//초기 입력
for(int i=0;i<N;i++){
scanf("%d", &B[i]);//숫자 입력
}
}
bool chk() {//배열 체크하는 구간
int cnt = 0;
for (int i = 0; i < N; i++) {
if (B[i] == chkNum[i])cnt++;
}
if (cnt == N)return false;//일치 하면 0 반환
else return true;//불일치 하면 1 반환
}
void play() {//시뮬레이션 작동
int flag = 0;//탈출 신호
while (chk()) {
for (int i = 0; i < N-1; i++) {//4번째까지만 비교하기 때문에 N-1
//1. 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.
//2. 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.
//3. 세 번째 조각의 수가 네 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.
//4. 네 번째 조각의 수가 다섯 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.
if (B[i] > B[i + 1]) {
swap(B[i], B[i + 1]);
for (int i = 0; i < N; i++) {
cout << B[i] << " ";
}
cout << endl;
}
if (chk()==0) {
flag = 1;
break;
}
}
if (flag)break;
}
//만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1 단계로 다시 간다.
}
int main(void) {
init_input();
play();
return 0;
}
시뮬레이션의 특징은 주어진 조건대로 구현할 수 있는가 입니다. 주어진 조건을 자세히 보고 구현하는 연습을 합시다.
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
15686 치킨배달 (0) | 2021.01.10 |
---|---|
14500 테트로미노 (0) | 2021.01.10 |
카드 1 (0) | 2020.10.22 |
청소년 상어 (0) | 2020.10.17 |
어른 상어 (0) | 2020.10.15 |
댓글