Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

튜플에서 특정 요소의 등장 횟수를 세는 파이썬 프로그램

사용자로부터 입력받은 튜플이 주어졌을 때, 그 안에서 특정 요소가 몇 번 나타나는지 세는 것이 이번 글의 목표입니다. 예를 들어 리스트 [10, 20, 30, 40, 10, 100, 80, 10]에서 숫자 10의 등장 횟수를 구한다면 결과는 3이 되어야 합니다.

예제

입력 : A = [10, 20, 30, 40, 10, 100, 80, 10]
       X = 10
출력 : 3

알고리즘

요소의 등장 횟수를 세는 절차는 다음과 같습니다.

countoccur(A, x)
/* A는 배열(리스트), x는 등장 횟수를 셀 요소 */
1단계: 동일한 요소의 개수를 셀 카운터 변수를 하나 준비합니다.
2단계: 튜플 전체를 순회(traverse)합니다.
3단계: x를 튜플의 모든 요소와 하나씩 비교합니다.
4단계: 요소가 x와 일치하면 카운터를 1 증가시킵니다.
5단계: 카운터 변수를 반환합니다.

예제 코드

# 튜플(리스트)에서 특정 요소의 등장 횟수를 세는 프로그램

def countoccur(A, x):
    c = 0
    for i in A:
        if (i == x):
            c = c + 1
    return c

# 드라이버 코드
A = list()
n1 = int(input("리스트의 크기를 입력하세요 :: "))
print("리스트의 요소를 입력하세요 ::")
for i in range(int(n1)):
    k = int(input(""))
    A.append(k)
n = int(input("등장 횟수를 셀 요소를 입력하세요 :: "))
print("숫자", n, "의 등장 횟수는", countoccur(A, n), "입니다")

실행 결과

리스트의 크기를 입력하세요 :: 6
리스트의 요소를 입력하세요 ::
12
23
45
12
89
12
등장 횟수를 셀 요소를 입력하세요 :: 12
숫자 12 의 등장 횟수는 3 입니다

더 간단한 방법: count() 메서드 활용

위처럼 직접 반복문을 작성하는 방식 외에도, 파이썬에서는 튜플과 리스트에 기본 내장된 count() 메서드를 사용하면 한 줄로 같은 결과를 얻을 수 있습니다.

A = [10, 20, 30, 40, 10, 100, 80, 10]
print(A.count(10))  # 출력: 3

count() 메서드는 내부적으로 위 알고리즘과 동일하게 모든 요소를 한 번씩 확인하므로, 시간 복잡도는 두 방식 모두 O(n)입니다. 학습 목적이라면 직접 구현해 보고, 실무에서는 간결한 count() 메서드를 활용하는 것을 권장합니다.