• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

23.02.25 16:34 작성 조회수 230

0

핵심을 말하자면
정렬함수 풀이과정을 하나하나 써보고
디버그로 확인해봐서 알겠는데..
뭔가 명확하게 머리에 들어오질 않습니다..

구구절절 써보자면요

처음에 정렬함수 만들떄
비교를 위해 두개의 반복문이 필요하고
작은 값을 저장할 변수가 필요하고
비교를 위한 조건문이 필요하고
작은 값을 변수에 저장하고
위치를 섞어 준다 까진 생각을 했는데

두번쨰 반복문 조건부분과
비교하는 부분의 코드구현을 못하겠더라구요..

이유가 저는 문제를 있는 그대로 안보고
혼자 작은 값을 아직 모르니 값을 다 비교를
해야된다고 생각해서 반복문 두개를 다
0번쨰부터 시작하니까
1과 다른 숫자를 비교하니 진행이 안되더라구요..

그래서 풀이과정을 봤는데 이해가 안가서
실행순서와 풀이과정을 메모장에 하나하나
적고 디버그 모드로 확인해가면서 봤는데도
아직 이해가 잘 안됩니다..
더 문제는 뭐가 정확하게 이해가 안되는지를
모르겠어요..

어떻게 동작하는지를 알겠는데
머리속은 명확하게 이해를 못한거 같으니
미칠꺼 같아요..
제가 왜 이해를 못할까요?

비교하는 조건 쪽을 제가 이해를 못하는거 같은데
왜 if (numbers[b] < numbers[tx]) 일까..

하나하나 실행순서를 전개해보고
반대로 했을떄 어떤지 해봐서
왜 if (numbers[b] < numbers[tx]) 인지는
알겠는데.. 왜 머리에 안들어 올까요..

뭘 더 해봐야 될까요..

답변 1

답변을 작성해보세요.

1

프로그래밍 언어가 익숙하지 못하서 안 되는 것인지,
알고리즘이 이해가 안 가서 안 되는 것인지는 스스로 판단해야 합니다.

전자라면 문법을 익히다 보면 자연스럽게 해결되니 시간이 해결을 해줍니다.
그런데 후자라면 일단 컴퓨터로 생각하기 보다는
공책과 펜으로 의사 코드를 쓰면서 스스로 어떻게 만들지를 떠올리고
그게 잘 되면 그 다음에 생각을 코드로 옮기면서 작업해야 합니다.

반대로 했을때 어떤지 해봐서
<< 반대로 '해보고 판단'하는게 아니라
로직을 생각하면서 맞는지 판단해야 합니다.

프로그래밍은 수학이랑 결국 동일합니다.
스스로 수학을 잘하는 편이었다면 쉽게 적응하겠지만,
그게 아니라면 사람에 따라 정말 오래 걸릴 수도 있습니다.

최지로님의 프로필

최지로

질문자

2023.02.28

제 생각엔 둘 다 인거 같습니다..
하기 전에 어떤식으로 짜야할지
이렇게 짜면 어떻게 흘러가는지
글로 써보면서 설계를 한 뒤에
코드로 옮겨 써보는데

이제 생각을 코드로 짜는거에 막히고
풀이과정을 보면 제 설계부분도
부족하더라구요..

수학은 물론 공부에 손을 놨던 사람이라
오래 걸리겠지만 한번 계속 해 보겠습니다.. 감사합니다

그리고 궁금한게 제가 이해 했는지를
어떻게 알 수 있을까요??

예를 들어 배열이라면
강의를 들을떈 알것도 같은데
확실하게 확인 하려면 코드를 써봐야 하는데 뭐 문제풀이 예제같은게 없다면
어떤 코드로 써야 할지도 모르겠고..

일단 계속 듣는것이 맞을까요?