인프런 커뮤니티 질문&답변
동적 할당 정적할당
작성
·
351
0
선생님의 풀이를 보면 매우 큰 배열 일때는 동적할당을 하고 100정도의 작은 배열에서는 정적할당을 하시던데 1000정도의 애매한 크기에서는 정적으로 선언할 떄도 있고 정적으로 선언할 떄도 있네요. 그리고 어떨 때는 전역으로 선언하고 어떤떄는 지역으로 선언하시던데 혹시 그 기준이 있으신가요?
퀴즈
57%나 틀려요. 한번 도전해보세요!
선택 정렬(Selection Sort) 알고리즘은 각 단계에서 어떤 작업을 수행하여 배열을 정렬하나요?
인접한 두 요소를 비교하여 필요시 교환합니다.
정렬되지 않은 부분에서 가장 작은(또는 큰) 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.
현재 요소를 이미 정렬된 부분 배열의 적절한 위치에 삽입합니다.
배열을 분할하고 각 부분을 재귀적으로 정렬한 후 병합합니다.
답변 2
0
0
크기에 따라 동적할당을 이용할 지 선택하는건 코딩테스트(P.S)에서 중요한건 아닌거 같아요.
물론 C로 개발하게 된다면 중요한 문제가 될 수 있겠지만요.
C++에서는 stl::vector를 사용하시면 첫번째 고민은 해결되실 것 같고
배열을 전역으로 선언할 때 stack영역이 아닌 data 영역에 생성되기 때문에 훨씬 큰 용량을 가질 수 있어요.
main함수 안에 배열을 선언했을 때 배열의 크기가 크면 stack overflow가 발생하는 걸로 알고 있어요.
추가로 전역 영역에 배열을 선언하면 자동으로 초기화를 시켜주기 때문에 의도치 못한 쓰레기값도 피할 수 있어요.
저도 프로그래밍을 접한지 얼마 안되서 정확한 내용이 아닐 수 도 있지만 아는 내용 답글 달아봅니다





