• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

배열 선언

22.02.16 19:41 작성 조회수 213

0

선생님 너무 헷갈리는게 문제를 푸실때 어떨땐 벡터를 쓰시고 어떨땐 전역변수로 배열을 선언하시는데 차이점좀 명확하게 알려주시면 감사할게요 . 이문제만 해도 42번문제에서는 이분탐색을 백터로 하셨는데 43번에서는 배열로 푸셔서요 답변좀 부탁드립니다 ㅠㅠ

답변 1

답변을 작성해보세요.

0

RON님의 프로필

RON

2022.02.16

라면이 먹고싶은데 신라면을 먹을지 진라면을 먹을지 고민하는 것과 같습니다.

42번과 43번은 배열로 풀어도되고 벡터로 풀어도 되고 아무런 차이가 없습니다.

배열과 벡터의 차이는 분명히 존재하나, 여기서 42번과 43번의 차이점은 42번은 애초에 main함수안에서만 풀었으므로 전역변수 설정을 하지않아도 되었던 것이고, 43번은 함수를 선언하고 그 함수에서도 배열의 정보가 필요하기 때문에 그냥 편하게 전역변수로 사용해서 main과 Count 함수에서도 사용 할 수 있게 된 것입니다. 만약 벡터든 배열이든 main에서 선언되었으면 Count 함수에서는 배열정보를 사용할수 없으니까요.

배열과 벡터의 차이가 아니라 지역변수인지 전역변수인지의 차이입니다.

보통 정적배열은 입력해야할 맥시멈값이 존재하거나, 입력되어야할 정보갯수를 이미 알고있을 때 보통 사용하고, 동적배열은 말 그대로 코드작성할때는 아직 모르고 런타임때 몇개를 입력할지 알 수 있을때 사용합니다.

프로그래밍 코드 작성에는 정답이 없습니다. 추출해야하는 답만 있을뿐, 코드작성에는 디자인패턴이라는 왕도는 존재하지만, 그렇다고 꼭 이렇게 해야한다는 정해진 것은 아무것도 없습니다. 물론 같은 답을 내놓더라도 잘 짜여진 코드와 못짠코드의 최적화 및 성능 차이는 절대적으로 차이 납니다.

코딩은 미술 시험이라고 생각하시면 됩니다. 제출해야하는 주제 및 장르만 정해져 있고, 그림은 전부 다르지만 같은 장르를 나타냅니다. 그리고 거기서 잘그린 그림만 합격하고 못그린 그림은 탈락하는 것 뿐입니다.