[Python] 코딩 도장 - 구글 입사문제

Updated:

코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.

코딩 도장에서 여러 문제를 확인할 수 있습니다.

난이도 순으로 차근차근 풀어보려 합니다.


[문제: 구글 입사문제] - Lv.2

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

8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.

(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)

출처: https://codingdojang.com/scode/393?answer_mode=hide


[풀이]

str(list(range(1,10001))).count("8")
4000

1부터 10,000까지의 리스트를 생성한 후 리스트 자체를 문자열로 변경하여 count()를 사용하였다.


[추천 풀이]

음....

10,000 에는 8 이 없으니 무시하고, 1 부터 9999 까지

X X X 8 인 경우 : 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)

X X 8 X 인 경우 : 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)

X 8 X X 인 경우 : 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)

8 X X X 인 경우 ; 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)

총 4,000 개 아닌가?

코딩이 아닌 생각으로 푸신 분이 있어서 올려본다.

코딩으로 푼 사람은 나와 비슷하였다.

Leave a comment