본문 바로가기

카테고리 없음

[파이썬] 코딩도장 난이도 2 "구글 입사 문제 중에서"

1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?

8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)

 

5월 7일자 해답:

 

str_List = []

new_List = []

 

for i in range(10001): 

a = str(i)

str_List.append(a)

 

for j in str_List:

for k in j:

new_List.append(k)

 

print(new_List.count("8"))

 

더 깔끔한 해답:

sum=0

for i in range(10000):

    a=str(i)

    b=a.count('8')

    sum+=b print(sum)

print(sum)

 

놀라운 해답:

print(str(list(range(1,10001))).count('8'))

 

여러줄에 걸쳐서 한 내 코딩과 달리 조금 더 직관적이게, 심지어 한줄로도 해답이 나오는 문제 였다.

구글에서 물어보는건 이걸 풀어낼 능력이 있냐가 아닌 어떠한 방식으로 문제를 풀었는지를 더 궁금해 하는것 같다.