[문제 설명]
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 

7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

[제한사항]
1 ≤ array의 길이 ≤ 100
0 ≤ array의 원소 ≤ 100,000


[입출력 예]
array             result
[7, 77, 17]        4
[10, 29]            0


[입출력 예 설명]
입출력 예 #1)
[7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.
입출력 예 #2)
[10, 29]에는 7이 없으므로 0을 return 합니다.


[나의 풀이]

from collections import Counter

def solution(array):
    return Counter(''.join(map(str, array)))['7']

[ list를 문자열로 바꾸기 (숫자가 없는 경우) ]

# String.join()으로 리스트의 모든 요소들을 하나의 문자열로 변환

list = ['a','b','c']
result = ' '.join(list)
result

Out[1]:

'a b c'

 

 

[ list를 문자열로 바꾸기 (숫자가 있는 경우) ]

# list안에 숫자가 있는 경우 아래와 같이 쓰면 에러가 발생

list = ['a',7,'c']
result = ' '.join(list)
result

----------------------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-02ffb3805567> in <cell line: 2>()
      1 list = ['a',7,'c']
----> 2 result = ' '.join(list)
      3 result

TypeError: sequence item 1: expected str instance, int found

 

>  list를 join할 때는 string이 들어가야 하는데 int가 들어가서 에러가 발생하였다.

   따라서 list안에 숫자가 있을 경우 아래와 같이 써야 한다.

 

# join() 사용할 때

list = ['a',7,'c']
result = ' '.join(str(i) for i in list)
result

Out[2]:

'a 7 c'

 

 

map() 사용할 때

list = ['a',7,'c']
result = ' '.join(map(str, list))
result

Out[3]:

'a 7 c'

 


[다른 사람 풀이]

def solution(array):
    return str(array).count('7')

> 나도 count를 사용해서 풀어보았는데.. 왜 안되었을까? 

   생각해보자.

 


[내가 풀었을 때]

array = [7,77,17]
array.count('7')

Out[3]:

0

 

> '0' 이 나온 이유

count 함수는 문자열에서 쓰이는 메서드이기 때문에 0이 나왔다.

.count(찾을 값, start, end)

 

 

[count의 특징]

- 대소문자를 구분함

- 찾을 값에 문자 한개 또는 문자열을 넣음

- 찾을 값의 범위 : start <= x < end 

- 범위를 안쓴다면 문자열 처음부터 끝까지 탐색 

   예) .count(찾을 값)

 

 

> 따라서 count를 사용한다면 array를 str(문자열)로 바꾼 후 count 써야 한다.

array = [7,77,17]
str(array).count('7')

Out[4]:

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Test > python' 카테고리의 다른 글

세균 증식 (비트 연산자: <<, >>, &, | )  (0) 2023.04.04
문자열 정렬하기 (2) (sorted() 사용)  (0) 2023.04.04
잘라서 배열로 저장하기 (filter)  (0) 2023.04.02
연속된 수의 합  (0) 2023.04.02
종이 자르기  (0) 2023.03.30

+ Recent posts