이 강좌는 널널한 개발자님의 강의를 기반으로 작성한 글입니다.
가장 큰 수 찾기
카드를 나열하는 방법
- 모든 카드는 그림과 같이 뒷면이 보이도록 나열하며 카드 앞면에는 1~10 까지 숫자가 적혀 있으며 같은 숫자는 없다고 가정한다.
- 영희는 철수의 지시에 따라 카드를 뒤집어 볼 수 있다.
- 철수는 카드는 한번에 두장만 뒤집어 보라고 영희에게 부탁할 수 있으며 영희는 두 카드 중 어떤 카드의 값이 더 큰지 알려준다. 단 숫자를 알려주지 는 않는다.
- 영희의 답을 듣고 철수가 원한다면 두카드의 위치를 바꿀수 있다.
- 어떤 카드부터 어떤 순서로 뒤집어 볼지는 온전히 철수 마음이다.
- 이제 가장 적은 회수로 카드를 뒤집어 보고 모든 카드를 오름차순으로 나열해보자.
Q1. 가장 큰 숫자 찾기
내 생각은 다음과 같다.
- 먼저 처음 2개의 카드를 비교하여 큰 카드는 오른쪽 작은 카드는 왼쪽을 유지한다.
- 그리고 큰 숫자 카드와 다음 카드를 비교한다. 거기서 큰 카드는 오른쪽 작은 카드는 왼쪽을 유지한다.
- 이렇게 반복 후, 가장 오른쪽의 카드가 가장 큰 수가 될 것이다.
Q2. 오름차순 정렬
내 생각은 다음과 같다.
- 먼저 처음 2개의 카드를 비교하여 큰 카드는 오른쪽 작은 카드는 왼쪽을 유지한다.
- 그리고 큰 숫자 카드와 다음 카드를 비교한다. 거기서 큰 카드는 오른쪽 작은 카드는 왼쪽을 유지한다.
- 이렇게 반복 후, 가장 오른쪽의 카드가 가장 큰 수가 될 것이다.
- 이러고 나머지 큰 카드를 제외한 나머지 카드도 위의 로직처럼 비교
- 이렇게 비교할 카드가 있을 때까지 반복
코드로 알아보기
