• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문

24.01.24 13:34 작성 조회수 115

2

안녕하세요. 덕분에 삽입정렬 마스터했습니다.

 

또한 다른 쪽 우선 공부해보고 싶은 곳이 있는데, 만약 A=(1, 11, -2, 12, 8, 9)이고 x=10이라면, 알고리즘은 (1, 9) 또는 (-2, 12) 같은 쌍을 찾아내야 할때를 공부하고 싶은데, 어떤 부분을 공부하면 될까요? 기본인지 심화에 있는지도 말씀해주시면 감사드리겠습니다.

답변 2

·

답변을 작성해보세요.

0

ghuhan18님의 프로필

ghuhan18

질문자

2024.01.24

친절하고 상세한 답변 감사합니다. 제가 딱 바로 떠오른 생각은 for 문을 2개 중첩시켜서 selection sort 의 방식과 같이 하나씩 직접 다 비교해보는 방법이 가장 적절할 것 같은데, 이에 대해서는 어떻게 생각하시나요 ?

그 방법도 나쁘지 않는 것 같습니다.
다만 짝을 찾는 특성으로 이미 짝이 구해진 수는 탐색 범위에서 제거하면 더 빨라질 것 같습니다 :)

0

안녕하세요 ghuhan18님!
말씀주신 알고리즘은 강의에서 직접적으로 다루지는 않습니다.
이 세상엔 셀 수도 없이 많은 알고리즘이 있는데 모든 알고리즘을 다루는 건 힘듭니다.
어떤 알고리즘의 경우는 이전에 배웠던 다른 알고리즘을 이용하거나 조금 변형하면 해결할 수 있는 경우가 있습니다.

말씀주신 알고리즘을 예를들면 해당 배열의 첫 번째 원소부터 끝까지 순회합니다.
만약 첫 번째 원소인 1을 선택했다면 x가 10이므로 9(10-1)을 찾으면 되겠죠?
여기서 검색 알고리즘을 사용해 9를 찾고 9를 찾았다면 (1, 9) 쌍이 존재하는 것을 알 수 있습니다.
이렇게 배열의 원소를 반복한다면 모든 쌍을 찾을 수 있을 것 같네요.
물론 지금 제가 말씀드린건 즉석에서 생각할 수 있는 아주 간단한 방식의 해결방법이고 문제의 정답은 여러가지가 될 수 있습니다.
우선 ghuhan18님께서 기존에 알고있는 자료구조와 알고리즘을 활용해서 문제를 해결하다가 아이디어가 떠오르지 않으면 다른 사람이 어떻게 해결했는지 참고하시면 공부에 큰 도움이 되실겁니다 :)

궁금증이 해결되셨나요?