본문 바로가기
프로그램/Python 1000제

Python 70제] 삽입정렬을 사용하여 오름차순 프로그램을 작성하시오.

by 건티 2022. 4. 29.
728x90

출처 : 반크_세계유산 석굴암

 

문제]

건태는 한국전자 1차 필기전형을 합격하고 2차 면접을 보기위하여 한국전자 본사 면접실로 왔다.
수험표 순서대로 자리를 배정하려고 한다. 건태는 몇번째 자리에 앉으면 될까?
1차 합격자의 수험번호는 35, 9 , 8, 98, 18, 31, 58, 17, 76, 45이고
건태의 수험번호는 31번 이었다.
조건)
삽입정렬을 사용하여 프로그램을 완성하시오.

 

참고풀이]

L=[35, 9 , 8, 18, 98, 31, 58, 17, 76, 45]
N=len(L)
Su=31 #찾을 값
#N번 만큼 반복할 수 있도록 한다.
for i in range(N-1):
    #체크할 값을 결정한다.
    chki=i+1
    chk=L[chki]
    #체크할 값이 삽입될 위치를 찾아 삽입하고
    #삽입되는 위치 이후의 값들은 한칸씩 뒤로 이동한다.
    for j in range(chki):
        if L[j]>chk:
            for k in range(chki,j,-1):
                L[k]=L[k-1]
            L[j]=chk
            break
#수험번호의 위치를 찾는다.
for i in range(N):
    if Su==L[i]:
        Sui=i

#결과출력
print("1차 합격자 수험번호]")
for i in range(0,N):
    if i<N-1:
        print(L[i],end=", ")
    else:
        print(L[i])
    
print(f"\n수험번호 {Su}인 건태의 자리는 {Sui+1}번째에 있습니다.")

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글