개수 세기

import sys


def main():
    input = sys.stdin.readline

    n = int(input())
    arr = list(map(int, input().split()))
    v = int(input())

    count = arr.count(v)
    print(count)


main()
import sys


def main():
    input = sys.stdin.readline

    n = int(input())
    arr = list(map(int, input().split()))
    v = int(input())

    count = 0
    for a in arr:
        if a == v:
            count += 1
    print(count)


main()

1차원 배열 단계와 문자열 단계에서는 가능하면 위와 같이 내장 함수를 사용하는 코드와 같은 기능을 직접 구현하는 코드를 모두 작성하겠습니다. 다른 문제들을 해결하려면 두 코드 모두 이해하고 작성할 수 있어야 합니다.

시퀀스 자료형

시퀀스 자료형은 이터러블 자료형 중에서도 다음 연산들을 지원하는 자료형을 말합니다. (s가 시퀀스입니다.)

연산 설명
x in s sx가 포함되어 있는지 확인합니다.
x not in s sx가 포함되어 있지 않은지 확인합니다.
s + t st를 이어붙인 새로운 시퀀스를 만듭니다.
s * n 또는 n * s sn번 이어붙인 새로운 시퀀스를 만듭니다.
s[i] si번째 항목을 가져옵니다.
s[i:j] si번째 항목부터 j번째 항목까지 가져옵니다.
s[i:j:k] si번째 항목부터 j번째 항목까지 k 간격으로 가져옵니다.
len(s) s의 길이를 구합니다.
min(s) s의 최솟값을 구합니다.
max(s) s의 최댓값을 구합니다.
s.index(x) s에서 항목 x의 인덱스를 구합니다.
s.count(x) s에서 항목 x의 개수를 구합니다.

지금까지 알아본 자료형들 중에서 list, str, range가 시퀀스 자료형에 속합니다. 1차원 배열 단계에서는 list에 대해 위 메소드들을 어떻게 활용하는지 하나씩 살펴봅니다.

이터러블을 리스트로 변환하기

list 함수를 사용하면 이터러블의 멤버들을 가진 리스트를 만들 수 있습니다. 따라서 list(map(int, input().split()))

  1. 입력으로 받은 문자열을 공백을 기준으로 나눈 리스트를 만들고,
  2. 그 리스트의 각 항목을 정수로 변환한 이터러블을 만들고,
  3. 그 이터러블을 리스트로 변환한 것입니다.

리스트 내 특정 항목 개수 세기

리스트 내 특정 항목의 개수를 셀 때는 count 메소드를 사용합니다.

seq = [3, 1, 4, 1, 5, 9, 2]
print(seq.count(1))      # 2

seq = ["A", "AB", "A", "O", "B", "B"]
print(seq.count("O"))    # 1
print(seq.count("A"))    # 2
print(seq.count("B"))    # 2
print(seq.count("AB"))   # 1
print(seq.count("C"))    # 0
댓글