본문 바로가기
Study/Algorithm_정보처리기사

[정보처리기사][알고리즘][응용] 숫자와 좌우 위치 변경

by 푸민 2015. 8. 23.
반응형



Q. A(10)의 배열에는 첫번째 위치부터 특정 번째까지 0이 아닌 자연수가 들어있고, 나머지는 0이 들어있다. 처음으로 0이 나오기 전까지의 숫자들의 위치를 반대로 교환하여 출력하는 순서도를 작성하시오. 예를들어 1234500000이면 5432100000으로 출력하고, 1234000000이면 4321000000으로 출력해야 한다.

1. 데이터가 저장될 배열 A를 선언한다. 배열 A에는 데이터가 저장되어 있다고 가정한다.


2. 배열의 위치가 1부터 시작되므로 i를 1로초기화한다.첫번째로 0이 나오는 위치를 찾는다 A(i)의 값이 0이면 교환을 위해 Yes로 가고 아니면 계속 찾는다.


1) No일 경우, 숫자의 위치를 1증가 시킨다. 그리고 2번으로 간다.


2) Yes일 경우 으로 간다.


3. 숫자의 끝 위치를 지정하기 위해 처음으로 0이 나온 위치에서 1을 뺀다.


4. 교환할 자료의 첫 번째 위치가 1이므로 교환할 숫자의 첫 위치 i를 1로 초기화한다.


5. 교환할 자료들의 중간 위치를 계산한다.


6. K에 A(i)를 입력한다.


7. A(i)에 A(J)를 입력한다.


8. A(J)에 K를 입력하여 자료를 교환한다.


9. 첫 위치(i)와 중간위치(M)가 같으면 자료가 모두 교환된 것이므로 Yes로 가고 아니면 다음 자료를 교환하기 위해 No로 간다.


1) Yes일 경우, 자료를 출력하고 끝낸다.


2) No일 경우, 교환할 자료의 첫 위치를 증가시킨다.


3) 교환할 자료의 끝 위치를 감소 시킨다. 그리고 6으로 간다.


해당 자료는 제가 만든 어플을 기준으로 작성하였습니다.

더 많은 자료는 알고리즘 어플을 이용해주세요.

반응형

댓글