코딩도장

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

61개의 풀이가 있습니다. 1 / 7 Page

c# 입니다.

 private void Form1_Load(object sender, EventArgs e)
 {
 String inputs = "0123456789 01234 01234567890 6789012345 012322456789";
 String[] Split_input = inputs.Split(' ');
 foreach (String s in Split_input)
 {
 if (Check_NUM(s))
 Console.Write("true ");
 else
 Console.Write("false ");
 }
 }
 private bool Check_NUM(String number)
 {
 List<Char> List_input = new List<Char>();
 char[] data = number.ToCharArray();
 foreach (Char d in data)
 {
 if (List_input.Contains(d))
 return false;
 List_input.Add(d);
 }
 if (List_input.Count == 10)
 return true;
 return false;
 }

공백을 나눈 후 String을 Char 배열로 쪼개서 넣은다음 list클래스의 contain으로 값이 들어있는지 비교를 해보았습니다.

2015年10月06日 11:23

서 원진

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

a = list(input("0~9까지 숫자를 한번씩 입력하시오 :"))

print ("True" if '0123456789' == "".join(sorted(a)) else "False")

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
(defn ^int to-int [^Character c]
 (Character/getNumericValue c))
(let [FULLNUMBER 2r1111111111]
 (defn ^boolean is-fullnumbers?
 [^String numbers]
 (loop [[x & xs] (map to-int numbers)
 acc 2r0]
 (let [is-fulled (= acc FULLNUMBER)]
 (cond (nil? x) is-fulled
 (and is-fulled x xs) false
 :else
 (let [shifted (bit-shift-left 1 x)]
 (if-not (zero? (bit-and acc shifted))
 false
 (recur xs (bit-or acc shifted)))))))))
(time (map is-fullnumbers? ["0123456789" "01234" "01234567890" "6789012345" "012322456789"]))
;=> (true false false true false)
댓글 작성은 로그인이 필요합니다.
```clojure (and is-fulled x xs) false ``` 음 이 부분이 맘에 안드네요 - 김 은평, 2015年10月02日 01:13 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

Swift로 간단하게 풀었습니다.

let answer = "0123456789".utf8.reduce(0) { 0ドル + Int(1ドル) }
let input = ["0123456789", "01234", "01234567890", "6789012345", "012322456789"];
let output = input.map { 0ドル.utf8.reduce(0) { 0ドル + Int(1ドル) } == answer }
print(output) // [true, false, false, true, false]

2015年10月07日 02:03

Ahn Jung Min

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

VB.NET

 Dim test_case() As Integer = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
 Dim result As Boolean = Enumerable.Range(0, 10).SequenceEqual(test_case)
 Console.WriteLine(result)

2015年10月14日 17:03

Steal

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

insertion = input()

palette = [] for i in range(0, len(insertion)): palette.append(int(insertion[i]))

contrast = list(set(sorted(palette)))

if palette == contrast: print("true") else: print("false")

2016年01月12日 12:22

Hitz

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

!/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;

}

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

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

최 영훈

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

//이게 레벨이 1이...????

include

include

using namespace std;

int main() { int innum; string firstin; int count; bool flag; int num[10] = { 0 };

cout << "숫자 입력 >> ";
cin >> firstin;
int coutn = 0;
innum = stoi(firstin);
count = 0;
flag = 0;
for (int ws = innum;;)
{
 coutn++;
 if(ws != 0) num[ws % 10]++;
 if (ws < 10) break;
 ws /= 10;
}
for (int i = 0; i < coutn-1; i++)
{
 if (firstin[i] == '0') num[0]++;
}
for (int i = 0; i < 10; i++)
{
 cout << "num[" << i << "] = " << num[i] << endl;
 if (num[i] != 1) flag = 1;
}
if (flag) cout << "false" << endl;
else cout << "ture" << endl;

}

2017年03月25日 15:25

PARK JINHOH

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

풀이 작성

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

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