코딩도장

Duplicate Numbers

일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.

0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.

  • sample inputs: 0123456789 01234 01234567890 6789012345 012322456789

  • sample outputs: true false false true false

no duplicates
(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
+1 sample output에서 두 번째꺼는 01234니까 0~9사이의 숫자가 각각 하나씩 사용되어서 true 아닌가요?? 아니면.... 0~9까지 모든 숫자가 나와야 하는건가요??? - SPJung, 2015年12月31日 10:44 M D
+1 두 번째 예시는 한 번씩이 아니라 0번 씩 사용된 숫자들이 있으므로 false 입니다. - SungWook Jung, 2017年04月24日 15:17 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

3개의 풀이가 있습니다.

PHP로 짜봤습니다.

function zero($var) {
 return $var!=0;
}
$input = "0123456789 01234 01234567890 6789012345 012322456789";
$input_arr = explode(" ",$input);
foreach($input_arr as $str) {
 $digits = array_fill(0,10,1);
 for($i=0; $i<strlen($str); $i++) {
 $digits[$str[$i]] -= 1;
 }
 $filtered = array_filter($digits, "zero");
 echo (($filtered)?"false":"true")."&nbsp;";
}

2016年09月21日 01:33

허큐리

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
$input = "0123456789 01234 01234567890 6789012345 012322456789";
$output = array();
foreach(explode(" ",$input) as $item){
 $aItem = array_count_values(str_split($item));
 $chk = 0;
 for($i=0;$i<=9;$i++) if(isset($aItem[$i]) && $aItem[$i]==1) $chk++;
 $output[] = (count($aItem) == 10 && $chk == 10) ? 'true' : 'false';
}
echo sprintf("sample inputs: %s",$input);
echo "\n";
echo sprintf("sample outputs: %s",join(" ",$output));

2017年01月04日 10:47

stardust

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

PHP

$str = '0123456789 01234 01234567890 6789012345 012322456789';
$chk = implode(range(0, 9));
$arr = [];
foreach (explode(' ', $str) as $k => $v) {
 $tmp = str_split($v);
 sort($tmp);
 $arr[] = $chk === implode($tmp) ? "true" : "false";
}
$result = implode(" ", $arr);
print_r($result); // true false false true false

2019年09月11日 13:24

d124412

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

풀이 작성

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

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

no duplicates x 1

언어별 풀이 현황
전 체 x 501
python x 321
java x 68
기 타 x 61
cpp x 16
cs x 13
javascript x 9
objectivec x 5
ruby x 1
php x 3
r x 3
matlab x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

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