관리 메뉴

솜씨좋은장씨

[BaekJoon] 10807번 : 개수 세기 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 10807번 : 개수 세기 (Python)

솜씨좋은장씨 2022. 6. 6. 17:14
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 개수 세기 입니다.

 

10807번: 개수 세기

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

www.acmicpc.net

👨🏻‍💻 문제풀이 1

방법 1 : collections 의 Counter 를 활용하여 풀기

numbers 를 collections 의 Counter를 활용하여 list 속 각 값들이 몇 개 씩 들어있는지 카운팅
-> 위의 과정을 거치고 나면 각 숫자별로 몇 개씩 있는지 Dictionary 형태로 나옴
만약 입력 받은 v 가 해당 Dictionary 에 키로 있는 값이면 카운팅한 값을 
없다면 0을 정답으로 함

👨🏻‍💻 코드 ( Solution )

from collections import Counter

def counting_number(numbers, v):
    answer = 0
    cnt = Counter(numbers)
    
    if v in cnt:
        answer = cnt[v]
        
    return answer


if __name__ == "__main__":
    N = int(input())
    numbers = list(map(int, input().split()))
    v = int(input())
    
    print(counting_number(numbers, v))

방법 2 : List 의 숫자를 하나씩 비교하여 풀기

list Comprehension 을 활용하여 값을 돌면서 값 == v 인 것만 있는 새로운 리스트 생성
해당리스트의 값을 정답으로 함

👨🏻‍💻 코드 ( Solution )

def counting_number(numbers, v):
    ans_list = [num for num in numbers if num == v]
    
    return len(ans_list)


if __name__ == "__main__":
    N = int(input())
    numbers = list(map(int, input().split()))
    v = int(input())
    
    print(counting_number(numbers, v))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments