문제풀이(Problem Solving)

C언어 예제 12 "Array Reversal" [HackerRank]

게임이 더 좋아 2020. 3. 19. 18:02
반응형
728x170

https://www.hackerrank.com/challenges/reverse-array-c/problem?h_r=next-challenge&h_v=zen

 

Array Reversal | HackerRank

Given an array, reverse it.

www.hackerrank.com

 

배경지식

 

다시 동적메모리할당을 복습해보자면

 

int *arr (정수형을 가리키는 포인터변수)

arr = (int *)malloc(sizeof(int));      (int *)는 형변환임 casting이라고 한다.

 

배열을 복습하자면

 

arr[i] == *(arr + i) 이다. 

 

 

 


정말 짧은 생각으로 오류난 경우

 

 

저런식으로 짜니까. 17-19라인에서 값을 할당함과 동시에 기존의 배열도 달라져서 값이 제대로 나오지 않는 경우가 발생

 

 

제대로 한 것

 

새로운 배열을 하나 선언해서 문제해결

 

1. 배열을 역순으로 해야하네?

2. 배열의 순서를 포인터로 가리킬 수 있구나

3. 맨뒤에있는 것을 맨앞에 다 집어넣고 반복하면 되겠구나

4. for문으로 반복하자

5. 기존의 데이터는 유지하면서 할당해야하니까 새로운 배열을 만들자

6. 끝

728x90
반응형
그리드형