프로그래밍 공부
작성일
2023. 3. 9. 19:40
작성자
WDmil
728x90

반복되는 제귀함수를 하나 더 살펴보자.

제귀함수를 사용하는 것 중에는 피보나치 수열이 있다. 이를 제귀함수로 바꾸어보자.

피보나치 수열이란, 0 ,1 ,1 , 2, 3, 5, 8, 13 이런식으로 전 수와 더해가며 나아가는 숫자 인데,

0, 1, 0+1, 1+1, 1+1+1, 1+1+1+1+1 이런식으로 전 수와 더하는 것을 피보나치 수열 이라고 한다.

이를 한번 코드로 만들어보자.

피보나치 수열을 출력한 코드이다. 이건 간단하게for문으로 반복시킨 코드이다. 이것을 제귀함수로 반복되게 만들 수 있는데, 밑과 같이 수정 할 수 있다.

파보나치 수열을 재귀함수로 수정한것 이다.


이번에는 Array_sort를 찾아보자. 배열정렬인데, 배열을 내림차순, 오름차순으로 정렬해주는 것 을 이야기한다.

한번 알아보자.

배열정렬의 기본원리는 생각보다 엄청 간단한데,

우선 버블정렬을 확인해보자.

46598 이라는 수가 있다고 하면 순서는

46598
64598
64598
64598
64598

순으로 들어간다.

이번에는 다른 방식으로 선택정렬 이라는걸 알아보자.  43615 라고 할때

43615
34615
34615
13465
13456

로 들어가게 된다.

차이는 간단한데, 첫번째는 바로 앞 수와 비교하고, 선택정렬은 가장 작은수가 무조건 앞에 들어가게 정렬한다는 것 이다.

무엇이 더 좋은지는 판단하기 힘든데, 이는 둘다 일장일단이 있기 때문이다.

 

둘다 비슷한 시간이 흐르지만, 입력된 값이 대부분 일정하게 정리되어 있다고 한다면, 첫번째 방법이 더 유용할 것 이고

중구난방으로 정리되어 있다면 두번째 방법이 더 유용할 것 이다.

한번 코드로 구현해보자.

버블과 셀렉션 코드를 구현한 예시 이다.
출력시 잘 되는 모습을 볼 수 있다.


이번에는 2차원 배열을 출력해보자.

2차원 배열을 선언하는것은 매우 쉽다.

int arr[3][5] 라고 입력했다고 가정해보자.

그렇다면 우리는

ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ

 

형태의 배열을 선언한것 과 같다.

여기서 3차원으로 넣는다고 하면,

int arr[3][5][7] 이런식으로 넣으면 된다. 아직까지는 사용하지 않는다.


이 배열에서 

ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅇㅁ

이렇게 데이터를 입력한다고 가정해보자. 어찌 입력해야 할까?.

여기 위치는 2행 3열을 접근해야 한다.

순서는 0부터 시작하기 때문에 배열을 출력한다고 하면 이렇게 된다.

  0 1 2 3 4
0
1
2

위와 같은 형태로 배열의 주소가 정해진다.

 

행과 열은 형식이 있는데, 기본적으로 2차원배열은 행을 생략해서 적을 수 있다. 예시를보자.

위와 같은 방법으로 각각 작성할 수 있다.

이렇게 작성할 수 있다. 

이번에는 각각 선언한 배열을 접근해보자.

1차원배열은 for문 하나만 사용하면 되나, 2차원배열은 2중for문을 사용하여 각각 접근해줄 수 있다. 예시를 보자.

이번에는 전체 행, 열의 사이즈를 측정하고 출력해보자.

전에 사용하였던 sizeof로 나누어주면 쉽게 출력하여 보여줄 수 있다. 각각의 예시를 살펴보자.

예시와 함께 살펴보자, 각각 접근하여 출력하고 배열의 사이즈를 출력해보도록 하자.

728x90