코테공부
프로그래머스 4일차 - 7의 개수
알면 알 수록 재밌다!
2023. 2. 17. 07:32
문제 설명
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
제한사항
1 ≤ array의 길이 ≤ 100
0 ≤ array의 원소 ≤ 100,000
입출력 예 설명
- 입출력 예 #1
[7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.
- 입출력 예 #2
[10, 29]에는 7이 없으므로 0을 return 합니다.
해설
def solution(array):
answer = 0
lst = []
for cnt in array:
cnt_lst=list(map(int, str(cnt)))
lst.append(cnt_lst)
one_demension_lst=sum(lst, [])
for i in one_demension_lst:
if i == 7:
answer += 1
return answer
우선 이 문제는 개수를 찾는 것이다
[7, 77, 17]에서 7의 개수를 찾으려면 여러 방법이 있겠지만,
int 요소를 다 1자리 문자열로 바꾸면 된다.
(또다른 방법은 앞자리 뒤자리 나누기 10해서 나머지 7나오는지 아닌지로 풀어도 된다)
for cnt in array:
cnt_lst=list(map(int, str(cnt)))
lst.append(cnt_lst)
그래서 이와 같이 리스트 요소를 for문 돌려서 1개씩 받은다음
str 형태는 인덱스 요소 하나하나에 접근이 가능하므로 형변환 시키고 int형태로 다시 list에 담슴니다.
one_demension_lst=sum(lst, [])
for문을 3번 도니까 리스트가 3개가 생겼는데 그걸 또 리스트에 담았으니 2차원 리스트가 되었다.
2차원 리스트를 1차원 리스트로 변환시켜준다.
for i in one_demension_lst:
if i == 7:
answer += 1
1차원 리스트에서 다시 for문을 돌려서 한자리 수가 된 요소들에 접근해서
7이 있으면 1개씩 카운팅을 해준다.