본문 바로가기
● 알고리즘, 자료구조/2019 알고리즘

순차탐색

by 0ver-grow 2019. 9. 26.
반응형

리스트안에 있는 원소를 하나씩 순차적으로 비교하면서 탐색한다.

순차탐색알고리즘

주어진 리스트에서 특정 값을 찾아 해당 인덱스를 돌려주는 프로그램을 작성하라
해당 인덱스를 여러개 입력해도 하나만 걸리면 리턴하도록
외부값과 내부값을 비교하는 것이므로 이중 for문을 쓰지 않는다.


# 주어진 리스트에서 특정 숫자의 인덱스 찾기
# 입력 : 리스트 a, 찾는 값 x
# 출력 : 찾으면 그 값의 위치, 못찾으면 -1

def search(a,x) :
    len_a = len(a)
    for i in range(len_a) :
        if x == a[i] :
            return i
    return -1 # 만약 for > if > else문에 작성하게 되면 for문 전체를 검사하지 않고 return되어 값을 못찾는다.   

# 주어진 리스트에서 특정 숫자의 인덱스 찾기
# 입력 : 리스트 a, 찾는 값 x
# 출력 : 찾으면 그 값의 위치, 못찾으면 -1

def search(a,x) :
    len_a = len(a)
    for i in range(len_a) :
        if x == a[i] :
            return i
    return -1 # 만약 for > if > else문에 작성하게 되면 for문 전체를 검사하지 않고 return되어 값을 못찾는다.

순차탐색알고리즘 응용

주어진 리스트안의 값들 중 일치하는 값들의 인덱스를 모두 구하는 프로그램을 만들 것


# 주어진 리스트에서 특정 숫자의 인덱스 찾기
# 입력 : 리스트 a, 찾는 값 x
# 출력 : 찾으면 그 값의 위치, 못찾으면 -1

def search(a,x) :
    len_a = len(a)
    arr = []
    for i in range(len_a) :
        if x == a[i] :
            arr.append(i) # 해당되는 모든 인덱스를 저장한다
    return arr # for문이 끝나면 인덱스를 저장한 arr을 리턴한다.

# 주어진 리스트에서 특정 숫자의 인덱스 찾기
# 입력 : 리스트 a, 찾는 값 x
# 출력 : 찾으면 그 값의 위치, 못찾으면 -1

def search(a,x) :
    len_a = len(a)
    arr = []
    for i in range(len_a) :
        if x == a[i] :
            arr.append(i) # 해당되는 모든 인덱스를 저장한다
    return arr # for문이 끝나면 인덱스를 저장한 arr을 리턴한다.

 

순차탐색알고리즘 응용2

# 학생번호와 학생이름이 연결되어있다
# 입력한 번호와 일치하는 학생번호가 있다면 그 번호에 해당되는 학생의 이름을 출력한다.
# 입력 : 학생번호리스트 s_no, 학생이름리스트 s_name, 입력한 번호 find_no
# 출력 : 해당하는 학생 이름, 해당하는 학생 이름이 없으면 물음표


def search(s_no,s_name,find_no) :
    len_n = len(s_no)
    for i in range(0,len_n) :
        if find_no == s_no[i] :
            return s_name[i]
    return "?"

# 학생번호와 학생이름이 연결되어있다
# 입력한 번호와 일치하는 학생번호가 있다면 그 번호에 해당되는 학생의 이름을 출력한다.
# 입력 : 학생번호리스트 s_no, 학생이름리스트 s_name, 입력한 번호 find_no
# 출력 : 해당하는 학생 이름, 해당하는 학생 이름이 없으면 물음표

def search(s_no,s_name,find_no) :
    len_n = len(s_no)
    for i in range(0,len_n) :
        if find_no == s_no[i] :
            return s_name[i]
    return "?"
반응형

'● 알고리즘, 자료구조 > 2019 알고리즘' 카테고리의 다른 글

함수  (0) 2020.09.11
선택 정렬  (0) 2019.09.27
최대공약수 GCD 알고리즘. 유클리드.  (0) 2019.09.25
파이썬 기초. 리스트. 집합. 반복비교  (0) 2019.09.25
함수  (0) 2019.09.24