2 분 소요


단계 제목 설명  
4 1차원 배열 1차원 배열  
  소단계 문제번호 제목
  1 10807 개수 세기
    배열을 입력받고 v를 찾는 문제  

문제

총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.

내 제출

미제출

결과

수정 제출

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

print(n_list.count(v))

결과

정답

오답 이유

우선 기본적으로 input() 함수는 줄이 바뀌어서 삽입이 될 경우 바뀐 줄 만큼 input() 횟수가 늘어나는 형식으로 되어있습니다.

따라서 첫줄에서 n 을 input() 해주고,

둘째줄에서 count() 해줄 리스트들을 입력해주고

마지막줄에서 count() 대상이 될 숫자를 입력해줍니다.

마지막의 print(n_list.count(v)) 에서 n_list를 대상으로 count(v) 를 해줌으로써 count 된 결과를 print() 해주는 것입니다.

사용된 코드 이론


1. 파이썬 문자열 len 함수에 대해서


1-1) python len 함수 설명

다들 아시겠지만 len 함수는 파이썬 빌트인 함수로써 여러군데에서 쓰입니다.

여기서는 문자열의 길이를 구하기 위해서 len 함수를 사용해보려 합니다.

len 함수의 모양은 아래와 같습니다.

len(문자열)

len 함수는 매개변수로 들어온 문자열의 길이 를 반환합니다. 즉, 내부에 있는 문자의 개수(공백포함)을 계산해서 반환해주는 함수입니다. 예제로 한번 보겠습니다.

1-2) 파이썬 len 함수 예제

# =====================================
# len(문자열) 예제 1.
name = 'BlockDMask'
phone = '010 xxxx xxxx'
address = 'korea'

print(len(name))  # 10
print(len(phone))  # 13
print(len(address))  # 5


# =====================================
# len 예제 2.
# 문자열의 길이를 판단해야하는 경우가 있다고 하면 이런식으로 쓰이겠죠?
def check_name(s):
    if len(s) <= 0:
        print('이름은 1글자 이상 입력해야합니다.')
    else:
        print('좋은 이름 입니다.')


krName1 = ''
krName2 = '고길동'

check_name(krName1)
check_name(krName2)

예제 결과

2. 파이썬 문자열 count 함수에 대해서


2-1) string.count(self, x, __start, __end) 함수 설명

count 함수는 문자열에서 쓰이는 메서드 입니다. count 함수는 문자열 내부에서 특정 문자, 혹은 문자열이 포함 되어있는지 계산해서 반환해주는 함수 입니다. 함수 모양을 한번 볼까요?

.count(self, x, __start, __end)

self는 무시하셔도 좋습니다. 심화적인 부분이라 생각이 들어서

x는 찾을 문자열, 찾을 문자를 넣으면 됩니다. __start, __end 는 예상하셨다 싶이 문자열의 어디부터 어디까지 내부에서 찾아달라는 뜻 입니다.

제가 알아본 count의 특징은 이러합니다.

  • 대소문자를 구분합니다.

  • 찾을 x 에 문자 한개를 넣어도 가능하고 문자열을 넣어도 가능합니다.

  • __start, __end에 아무것도 넣지 않으면 문자열 처음부터 끝까지 탐색합니다.

  • 찾을 x의 범위는 __start <= x < __end 입니다. __start도 포함 __end 는 안 포함.

예시로 한번 확인해볼까요?

2-2) count 메서드 예시

# 문자열 'BlockDMask' 선언
a = 'BlockDMask'

# 문자열에서 'k'가 몇개 있는지 ?
print('#1 a.count("k")')
print(a.count('k'))

# 문자열에서 'DM'가 몇개 있는지 ?
print('#2 a.count("DM")')
print(a.count('DM'))

# 문자열에서 특정 범위 내부에 'k' 가 몇개 있는지?
# B l o c k D M a s k 에서 index를 표기해보면
# 0 1 2 3 4 5 6 7 8 9 입니다.

print("#3 a[2] + ' ~ ' + a[4]")
print(a[2] + ' ~ ' + a[4])

print("#4 a.count('k', 2, 3)")
print(a.count('k', 2, 3))

print("#5 a.count('k', 2, 4)")
print(a.count('k', 2, 4))

print("#6 a.count('k', 2, 5)")
print(a.count('k', 2, 5))

예제 결과



참고문헌

[python] 파이썬 count, len 함수 설명과 에제