[PYTHON] 10807 개수 세기 for/count/문자열특정문자개수찾기

    https://www.acmicpc.net/problem/10807

     

    10807번: 개수 세기

    첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거

    www.acmicpc.net

    문제 풀이

    • 2번째 줄인 정수들을 공백을 구분하여 받는다.
    • for문으로 순회하면서 target_N인 정수 v와 일치하면 카운팅하고 카운팅 개수를 출력한다

    solution - for문 활용

    import sys
    N = int(sys.stdin.readline().strip())
    data = list(sys.stdin.readline().strip().split())
    target_N = sys.stdin.readline().strip()
    
    cnt = 0
    for N in data:
      if N == target_N:
        cnt += 1
    print(cnt)

    solution - count 메서드 활용

    import sys
    N = int(sys.stdin.readline().strip())
    data = list(sys.stdin.readline().strip().split())
    target_N = sys.stdin.readline().strip()
    
    print(data.count(target_N))

    새롭게 알게 된 점

    str.count()

    count의 스팩이 알고 싶어 python help에게 물어봤습니다.

    count(...)
    S.count(sub[, start[, end]]) -> int
    Return the Nber of non-overlapping occurrences of substring sub in
    string S[start:end].  Optional arguments start and end are
    interpreted as in slice notation.

    • '찾고싶은문자열'.count('찾고싶은문자') -> 몇 번 존재하는지 정수형태로 개수를 반환
    • slice와 같이 시작 인덱스부터 끝인덱스(포함X), 음수 인덱스를 사용할 수도 있습니다.

    댓글