목차
접기
문제
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.
출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.
간단하게 사용자로부터 받아온 입력값 리스트 중 v의 개수를 출력하면 되는 문제다.
'정답 코드'
from collections import Counter
N = int(input())
num = list(map(int, input().split()))
v = int(input())
counter = Counter(num)
print(counter[v])
파이썬 표준 라이브러리 collections의 카운터를 사용하여 풀었다.
'돌아보기'
다른 사람들의 코드를 둘러보며 리스트 자체의 count() 함수를 많이 사용하여 위 문제를 풀었다는 것을 알 수 있었다. 파이썬 초짜인 나는 얼마 전에 배운 것과 같이 Counter를 사용헀는데 count()와 Counter()의 차이는 뭘까?
count() | Counter() |
내장 함수 | 외장 함수, 즉 collections 모듈을 import 해야 사용 가능 |
배열, 문자열 둘 다 사용 가능 | |
배열 내의 원소 x가 등장하는 횟수 반환 | 배열 내의 모든 원소 값의 개수 세어줌 |
다른 블로그에서 Counter()의 기능이 훨씬 뛰어나다고 들었는데 10807번 문제의 경우에는 내장함수 count() 함수를 썼을 떄의 코드 길이가 짧아서 그런지 Counter()를 사용했을 때보다 메모리와 실행속도가 더 우월했다.
문제에 따라 효율성을 따져 잘 적용하면 될 듯 싶다.
'I can do it on my own! > 백준' 카테고리의 다른 글
[백준] 10810번 파이썬(Python) (1) | 2023.05.11 |
---|---|
[백준] 10818번 파이썬(Python) (0) | 2023.05.10 |
[백준] 10951번 파이썬(Python) (0) | 2023.05.06 |
[백준] 10952번 파이썬(Python) (0) | 2023.05.06 |
[백준] 2439번 파이썬(Python) (1) | 2023.05.06 |