작은 걸음 III — 프로그램으로 생각하기
원하는 값 찾아보기
원하는 값 찾아보기
이번에 배울 것
검색은 원하는 값이 있는지, 있다면 어디 있는지 찾는 일입니다. 처음부터 하나씩 비교하는 방법을 순차 검색이라고 합니다.
실행해 보기
예제 · example1.cpp
int find(Array<int> numbers, int value)
{
for (int i = 0; i < numbers.length(); i = i + 1)
if (numbers[i] == value)
return i;
return -1;
}
void small_main()
{
Array<int> numbers = {7, 2, 9, 4, 5};
print("Index: ", find(numbers, 9));
}
9는 위치 2에 있으므로 Index: 2가 나옵니다. 찾으면 return으로 위치를 돌려주며 함수 전체를 끝냅니다.
끝까지 못 찾으면 -1을 돌려줍니다. 유효한 위치는 0 이상이므로 -1을 못 찾았다는 표시로 정했습니다.
Exercise — 마지막 위치 찾기
같은 값이 여러 번 있을 때 마지막으로 나타나는 index를 찾으세요. 없으면 -1을 출력하세요.
연습 문제 코드 · exercise1_starter.cpp
void small_main()
{
Array<int> numbers = {3, 7, 2, 7, 5, 7};
int value = 7;
int index = -1;
// find the last position.
print(index);
}
Hint
찾았다고 바로 return하지 말고 index를 갱신하며 끝까지 보세요.
풀이 보기
void small_main()
{
Array<int> numbers = {3, 7, 2, 7, 5, 7};
int value = 7;
int index = -1;
for (int i = 0; i < numbers.length(); i = i + 1)
if (numbers[i] == value)
index = i;
print(index);
}