코딩도장

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
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

501개의 풀이가 있습니다. 9 / 51 Page

 String Input = "0123456789";
 Char[] C = Input.ToCharArray();
 bool Ans = true;
 if (C.Length != 10)
 { 
 Ans = false; 
 }
 else
 {
 for (int i = 0; i < 10; i++)
 {
 if (!C.Contains(Char.Parse(i.ToString())))
 {
 Ans = false;
 break;
 }
 }
 }

일단 input을 chararray 로 쪼게고 길이가 10인지 확인한뒤 각 숫자들이 있는지 contains로 확인

2016年11月26日 18:59

Choco

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
num = input("숫자를 입력하세요 = " ) #str
list_num = list(num)
check_list = []
for i in range(0, 10):
 check = list_num.count(str(i))
 check_list.append(check)
a = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
if check_list == a : print("true")
else : print("false")

2016年12月03日 00:32

Kim Da Seul

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

!/usr/bin/python

box=range(0,10) values=raw_input("> ") for i in values: box.remove(int(i)) if box: print 'false!' else: print 'true!'

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

include

include

int main() { int i; int a[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; char c[256]; fgets(c, sizeof(c), stdin); c[strlen(c)-1] = '0円';

if (strlen(c) != 10) {
 printf("False\n");
 return 0;
}
for (i = 0; i < 10; i++) {
 a[(int)(c[i])-48]++;
}
for (i = 0; i < 10; i++) {
 if (a[i] != 1) {
 printf("False\n");
 return 0;
 }
}
printf("True\n");
return 0;

}

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
nums = input().split(' ')
print(''.join(['true ' if sorted(list(x)) == list('0123456789') else 'false ' for x in nums])) 
#### 2016年12月13日 D-436 ####

2016年12月13日 23:02

GunBang

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

Duplicate number.py

def check(s):

result = []
for num in s:
 result.append(num)
result = list(set(result))
if len(s) != 10 or len(result) != 10 :
 return False
return True

print(check("0123456789"))

2016年12月21日 13:18

최 영훈

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

C(11) gcc -std=c11

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
// 문자->정수
inline static int ctoi(char c) { return c - '0'; }
// 0~9까지 숫자가 한번씩만 사용했는지
bool is_duplicate(char *str);
int main(void)
{
 char temp[80];
 while (scanf("%s", temp) == 1)
 printf("%s\n", is_duplicate(temp) ? "true" : "false");
 return 0;
}
bool is_duplicate(char *str)
{
 if (strlen(str) != 10)
 return false;
 int number[10] = {[0] = 0};
 while (*str)
 ++number[ctoi(*str++)]; 
 for (int i=0; i<10; ++i)
 if (number[i] != 1)
 return false;
 return true;
}
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

python2.7.xxx
lists = '0123456789 01234 01234567890 6789012345 012322456789'
for x in map(list,lists.split(" ")):
 print "True" if len(x) == len(set(x)) else "False"

2016年12月31日 15:08

Daniel

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

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
// C++ 0을 제외한 나머지 수의 합을 등차수열의 합과 비교하였습니다.
bool CheckNum( char* pcBuff, int nMax = 9 )
{
 int nSum = 0;
 int nZero = 0;
 char nNum = 0;
 nMax = ( nMax * ( nMax + 1 ) ) / 2;
 for( size_t x = 0 ; x < strlen( pcBuff ) ; ++x )
 {
 if( pcBuff[ x ] == '0' )
 {
 nZero += 1;
 if( nZero > 1 )
 {
 return false;
 }
 }
 else
 {
 nNum = pcBuff[ x ];
 nSum += atoi( &nNum );
 if( nSum > nMax )
 {
 return false;
 }
 }
 }
 if( nSum != nMax )
 {
 return false;
 }
 return true;
}
int main()
{
 char acBuff[ 1000 ] = { 0, };
 cin >> acBuff;
 cout << CheckNum( acBuff );
 return 0;
}
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

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

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(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 によって変換されたページ (->オリジナル) /