관리 메뉴

도드넷

정보처리기능사 실기 기출유형#15 - 배열 알고리즘 총정리 본문

창고/정보처리기능사[완]

정보처리기능사 실기 기출유형#15 - 배열 알고리즘 총정리

도드! 2016. 5. 13. 15:11
반응형



Phase is just too fast you just wont last!


정보처리기능사 실기 기출유형#15 - 배열 알고리즘 총정리


1. 직각 삼각형 배열 알고리즘

- "비어있는 배열" 첫번쨰 유형인데 빈걸 어떻게 구현하느냐가 관건인듯 ?

비어있는건 그냥 그 배열 원소에 아무것도 넣지 않으면됨. 안넣는거야 반복문 통제변수 조절하면 될일.


핵심은 이중 반복문으로 구현되는 배열의 인덱스 J, i 둘의 관계를 잘 조절하는 것이다.

둘의 관계를 정할때 가장 중요한 요소는 진행방향이다.

이것만 명심하면 삼각형이 무슨 지랄을하고 나오든 해결가능.


2. ㄹ 배열 알고리즘

- 행마다 방향이 바뀌는데 교환과 플래그를 이용해야 한다.

한행마다 진행방향이 바뀌므로 이중반복문의 내부 반복문의 통제변수모두 유동적인 변수를 사용해야한다.

- 교환은 교환용 임시저장 변수를 이용한다.


3. 다이아몬드 배열 알고리즘

- 중간지점 관련 문제

- 마름모 다이아몬드 모양으로 진행하는 배열인데.. 뾰족한 꼭대기 한점부터 아래로 진행하며 양쪽으로 퍼지다가 중간지점 이후에 다시 모아져서 아랫쪽 꼭대기 한점으로 모이는 식으라고 보면 됨.

- 이 또한 이중반복문중 내부반목문 통제변수두개 시작인덱스와 끝인덱스를 유동적인 변수로 써야한다.

- 꼭대기 맨아래 점이야 둘다같은 수 써주면되고 중간지점도달까지 양쪽으로 퍼지는건 시작 인덱스에 -1씩 끝인덱스에는 +1씩 해주다가 최고로찢어진 중간지점이후에는 다시바꿔서 시작인덱스에 +1, 끝 인덱스 -1 해주면서 다시 불러들이면 된다.


4. 모래시계

- 중간지점 관련 문제

- 시작인덱스와 끝인덱스 조작의 끝. 일단 중간지점 찾고 시작인덱스는 증가하고 끝인덱스는 감소하게하고

행변화에서 중간지점 도착하면 반대로 시작인덱스는 감소하고 끝인덱스는 증가하게해서 원상복귀.


5. 오른쪽이 빈 삼각형

중간지점 관련 문제

- 중간지점 도달직전까지 열 끝인덱스 감소시키다가 중간지점 도달시 열 끝인덱스를 행 인덱스와 동기화시켜서 원상복구시킴.


6. 이등변 삼각형

- 열의 변화에따른 행의 시작인덱스와 끝인덱스의 변화.


7. 달팽이 모양

- 방향변수와 수행횟수 변수사용, 열의 변화에서 끝에 도달할시 방향변수 x-1, 행의 변화에서 끝에

도달할시 수행횟수 감소


이 모든것을 다외울 필요는 없고. 배열문제가 주워지면 아래같은 프로토콜을 진행하면 됨.


1. 진행방향 파악.

2. 시작되는 원소를 기반으로 반복문에서 필요한 시작 인덱스와 끝 인덱스 파악.

3. 주워진 변수들로 구현하기.


8. 앞에서 뒤로 밀리는 형식의 기묘한 배열


2

3

4

2

3

4

1

3

4

1

2

4

1

2

3


이런 형태인데 핵심은 열이끝나는 즉, 줄바꾸는 다음루프 타이밍에 숫자변수 K안에 "행번호M"를 집어넣음으로 해서 다음 행 시작할때 시작수를 맞추는 동시에, 최대수인 "4"에 도달시 K=1부터 다시 증가하게 만들면 뒤로밀리는듯? 한게 구현이 가능하다.



반응형
Comments