관리 메뉴

도드넷

정보처리기능사 실기#1 - 알고리즘 훑어보기 본문

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

정보처리기능사 실기#1 - 알고리즘 훑어보기

도드! 2016. 4. 14. 06:33
반응형



You are the still the only one who fills me up ♥


정보처리기능사 실기 요점정리#1 - 알고리즘이란?

- 휴일 하루만에 쭉 훌터보며 정리하는 정보처리기능사 실기의 알고리즘에대한 전체적 개론?


0. 정보처리기능사 실기 알고리즘 문제의 형식

- 정보처리기능사 실기시험에서 알고리즘은 임무와 해당 임무를 수행하는 프로그램 순서도를 보여주고 빈칸에 알맞는 수나 연산, 변수를 보기에서 찾아서 집어넣는 방식이다.


1. 알고리즘

- 알고리즘이란? : 기초적인 모형 임시 프로그래밍 언어. 

- 도형은 명령어이고 그속에 있는 내용물은 대상.

- 크리스털 모양 : SET (변수 정의및 설정하기)

- 사다리꼴 모양 : GET (입력받기)

- 마름모 모양 : IF (판단)

- 직사각형 모양 : DO (실행)

- 이중 직사각형 + 조건 알고리즘 : 반복 또는 순환

* 조건 : P = 5, 1000, 2 -> P의 초기값은 5이고 2씩 더해서 1000이 될때까지 진행하라. (맨뒤 숫자가 생략된 경우 1씩 증가라는 말이다.) 참고로 조건 변수인 "P"도 필요하면 연산에서 사용할 수 있다.

- 아래가 볼록한 직사각형 : PRINT (출력)

- 작은 원형 : 분기 그냥 point.


2. MOD 함수

- NAM = P MOD C 에서 MOD를 가리키며 이는 P를 C로 나누었을때 나머지를 산출하는 함수연산이다.

- P MOD C = 0 : 나누어 떨어진다 = P는 C의 배수

- 공배수구하는 법은 MOD에서 얻어진값 두개를 더해서 0되면 공배수인것이다.


3. 배열

- A(B) 형식으로 표현되며 여러수를 저장한다. A는 배열명이고 B는 배열의 원소 번호이다.

- A(B)(C) 형식은 이차원 배열로 표의 위치, 2차원상의 좌표를 나타낸다.


4. 반복 VS 순환

- 둘다 한일을 또하는것. 차이가 있다면, 순환은 자기자신을 호출하는 방식이고 반복은 반복문을 이용해서 반복하는것.


5. 홀수 짝수

- N = 0 일떄, 홀수는 N / 짝수는 N+1 로 표시할 수 있다.

- 2로 나눠서 나머지가 0이면 짝수, 아니면 홀수이다.


6. 보수 취하기

- 어떤이진수(1또는0)에 보수를 취하려면 1에 그 수를 빼면 된다.

- [1 - 이진수] 1이면 0되고 0이면 1된다.

- 2의 보수 구하는 방법 : +1 해주면 된다. 말은 쉽지. 이거 자리올림까지 계산해야 하는데 이게 쉽지가 않다.

일단 마지막 배열의 원소에 C(+1) 해준다. 이후 MOD 2를 저장해서 해서 자리올림을 구현한다. 다음자리로 올라가는 자리수는 해당자리수 X 1 해주면 된다.  1이면 1X1로 1이 올라가겠고 0이면 1X0으로 0 아무것도 올라가지 않게 된다.


7. 돈 나누기

- 총액 / 단위금 = 매수

- 총액 MOD 단위금 = 남은금액

- 총액 - 매수 x 단위금 = 남은금액


8. 루프횟수

- 나가는 타이밍 아웃 타이밍을 결정하는 최대 루프횟수는 보통 데이터량과 같으나

루핑구조에 따라 선추가후 비교하는것이면 +1 이될수도 있음을 유의하자.


9. 최대값 최소값 평균값

- 최대값 : 제일처음 실질최소값을 최대(MAX)로 잡고 데이터와 비교하며 최대값 설정후 다른수와 계속 비교하며 최대값 수치를 높힌다.

- 최소값 : 제일처음 실질최대값을 최소(MIN로 잡고 데이터와 비교하며 작은값을 최소값으로 설정한후 다른수와 계속 비교하여 최소값 수치를 낮춘다.

- 평균값 : 전부다 합한후 더할때 사용한 원소의 개수로 나누면 된다.


10. 행렬

- 최대셀의 좌표를 벗어나면 종료하도록 한다.


11. 순위 RANK 매기기

- 이중 반복문을 이용해 크기를 비교한다. 순위 포인트를 1로 잡고 비교해서 작으면 순위 포인트에 +1 씩 더해준다.

50명중 50번 대조할경우 같은경우를 제외하고 총 49번 패배하면 꼴찌 50등이 된다. 만약 49번 승리하면 순위포인트에 변화가 없으므로 1등이 된다.


12. 배열 순서정렬하기

- 오름차순 : 작은거부터 올라감. / 내림차순 : 큰거부터 내려감.

- 오름차순 정리하는 방법 : 원소들 모두 비교해서 가장은것을 찾아내고 출력한다. 이후, 원소를 최대치로 만들어 다음 회차에서는 더이상 포함되지 않게 만든후 다시 비교를 시작한다.


13. 병합

- 이미 오름차로 된 두 배열을 병합하려면 두배열의 원소를 순서대로 비교하며 작은쪽을 저장하고 작은쪽의 순번을 올려서 다음 회차에서 다른쪽에서 작은쪽이 나오기 유리하게 해준다. 


14. 문자열 변환

- 정수 48238423 를 48,238,423 로 표시되게 하시오.

- 나머지를 도출하는 % 연산을 이용해 % 10 연산을 이용한다. 어떤수에 % 10 하면 끝자리 수를 알게된다. 위에 48238423 % 10을 하면 나머지는 3 이므로 3이 나온다. 그리고 이후 48238423에 / 10 해주면 정수만 다루므로 맨뒷자리는 제외되고 4823842 가 된다. 이런식으로 숫자를 줄여나가며 자릿수를 캐치한후 역순으로 배치하게하면 된다. 


15. 진법변환 알고리즘

- 진법변환 같은 유형은 사람이 하듯하면 되는데... 방법이 살짝 새롭고 다르다?


몫을 표현할 배열 A(16) 정의

원하는 진법 N 입력받음

바꾸고 싶은 10진수 D 입력받음

K = 1 설정

K 가 D보다 커질때까지 K = K * N 해줌.

Point 1

K 가 1보다 크면 K = K / N 해줌

Q = INT(D/K)로 몫을 구함

출력 A(Q+1)

R = D - (Q * K)해 줌.

D = R

K = 1이면 종료하고 아니면 Point 1로 가서 반복함.


핵심 : K=1, K = K * N (N^X), K/N, Q = INT(D/K), R = D-Q*K, D = R

 

Give us the absolute.





반응형
Comments