코딩도장

구글 입사문제 중에서

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

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

2014年02月14日 01:03

pahkey

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
여러 알고리즘이 존재할테고, 답도 여러가지인데...구글이 원했던, 혹은 가장 점수를 많이 줬던 정답은 뭘지 매우 궁금?궁금? - 예강효빠, 2017年05月24日 01:30 M D
경우의 수로 풀면 3번의 반복만으로 풀수 있어요 ^^ - 최재학, 2019年08月07日 11:20 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

8개의 풀이가 있습니다.

<?php
echo substr_count(join('', range(1,10000)), 8);
?>

2014年02月19日 09:09

송 영호

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

php의 경우는 요렇게 네요 ^^

$tmp = 0;
for ( $i = 1 ; $i <= 10000 ; $i++ ){
 $tmp += substr_count($i, "8");
}
echo $tmp;

// 4000

2014年02月14日 18:39

우너세

댓글 작성은 로그인이 필요합니다.
php도 참 편리한 언어네요 - pahkey, 2014年02月14日 21:34 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

PHP입니다.

<?php
$c = 0;
for($i=0;$i<10000;$i++){
 for($j=0;$j<strlen($i);$j++){
 if(substr($i,$j,1)==8){
 $c++;
 }
 }
}
echo $c;
?>

2014年02月19日 01:50

Harold Kim

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

PHP

<?php
$count = 0; // $count를 숫자화시킨다
for($i=1;$i<=10000;$i++){ // 1부터 10000까지 반복한다
 $i = (string)$i; // $i를 문자화시킨다 (이유 : 밑의 $j번째 글자를 불러오기 위해)
 for($j=0;$j<strlen($i);$j++){ // 0부터 $i의 글자수 - 1번만큼 반복한다
 if($i[$j]=="8")$count += 1; // $i의 $j번째 글자가 8이면 $count를 +1시킨다
 }
 $i = (int)$i; //$i를 숫자화시킨다.
}
echo $count; // $count를 출력한다.
?>

PHP는 간단하게(?)되네요 ᄏᄏᄏ

2015年04月20日 22:53

장 효찬

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
<?php
 $cnt = 0;
 for ($i=0; $i <= 10000; $i++) { 
 $temp = explode('8', (string)$i);
 $cnt = $cnt + (count($temp) -1);
 }
 echo $cnt;
?>
좀 야매스러운방법이긴 하지만 생각해봣습니다.

2015年11月24日 16:40

한기우

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

PHP 함수로 풀어봤어요 ᄒ

$sum = 0;
for($i=1; $i<=10000; $i++) {
 $str = array_count_values(str_split((string)$i));
 $sum += $str[8];
}
echo $sum;

2016年06月03日 02:50

허큐리

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
$cnt = 0;
for($i=1; $i<=10000; $i++) for($j=0; $j<strlen($i+""); $j++) if(substr(($i+""), $j, 1) == 8) $cnt++;
echo $cnt;

2019年01月25日 12:58

김태우

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

PHP

$result = substr_count(implode(range(1, 10000)), 8);
print_r($result); // 4000
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.


언어별 풀이 현황
전 체 x 877
기 타 x 137
python x 457
java x 134
cpp x 59
ruby x 7
javascript x 27
php x 8
cs x 18
lisp x 2
scala x 7
clojure x 1
objectivec x 5
perl x 2
go x 4
haskell x 3
r x 4
matlab x 2
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /