도드넷
정보처리기능사 실기#1 - 알고리즘 훑어보기 본문
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.
'창고 > 정보처리기능사[완]' 카테고리의 다른 글
정보처리기능사 실기#3 - 데이터 베이스 2부 (0) | 2016.04.16 |
---|---|
정보처리기능사 실기#2 - 데이터 베이스 1부 (0) | 2016.04.15 |
자격증시험 준비물 수험표 꼭 필요 - 수험표 필수 안가져가도 됨? (1) | 2016.04.13 |
정보처리기능사 필기 합격 - FINAL 요점정리 오답노트 (3) | 2016.04.09 |
정보처리기능사 원서접수하는 법 - 자격증 원서접수 과정 (3) | 2016.03.31 |