일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.
0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
sample outputs: true false false true false
502개의 풀이가 있습니다.
python 2.7.8입니다. 입력값을 sorting해서 0123456789 와 비교하는 방법을 썼습니다.
n = [''.join(sorted(x)) for x in raw_input().split()]
for x in n:
print "true" if x=="0123456789" else "false",
파이썬 2.7.6 입니다.
print map(lambda n:len(set(n))==10 and len(n) ==10 ,"0123456789 01234 01234567890 6789012345 012322456789".split())
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")
파이썬의 set함수를 활용하면 중복된 원소를 모두 단일화할 수 있으므로, 그렇게 정리된 리스트가 원래의 숫자 입력을 리스트로 만든 것과 동일한가를 판가름하는 구조로 짜 보았습니다.
Java 8
public static void main(String[] args){
System.out.println(isDuplicated(12345678900l));
}
public static boolean isDuplicated(long number){
String s = String.valueOf(number);
return s.chars().distinct().count() != s.length();
}
파이썬입니다.
def only_one(string):
num_set = set(string) # 중복 제거
if len(string) == len(num_set) == 10: # 중복 제거 한 후의 갯수와 같고 그 갯수가 10이라면
return "true"
else:
return "false"
input_string = "0123456789 01234 01234567890 6789012345 012322456789"
for s in input_string.split(" "):
print(only_one(s), end=' ')
파이썬입니다.
input = "0123456789 01234 01234567890 6789012345 012322456789 1111111111"
for ca in input.split():
check = [0 for i in range(10)]
for s in ca:
check[int(s)] += 1
print sum(check) == 10 and all(check)
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으로 값이 들어있는지 비교를 해보았습니다.
#include <iostream>
#include <string>
using namespace std;
int main( int argc , char** argv )
{
int array[ 10 ] = { 0 , };
string input = "012345632789";
for( size_t i = 0 ; i < input.size() ; ++i )
{
array[ input[ i ] - '0' ]++;
}
for( int i = 0 ; i < 10 ; ++i )
{
if( array[ i ] > 1 )
{
cout << "false" << endl;
return 0;
}
}
cout << "true" << endl;
return 0;
}
def solution(k):
m=int(len(k))
indx=str(k)
for j in range(0,m-1):
for l in range(1,m):
if j!=l:
if indx[j]==indx[l]:
return False
return True
0부터9 니까 무조건 숫자 10개가 나와야 한다는 것과, 집합은 중복을 사용하면 안된다는 생각을 이용했습니다
number = input('numbers?')
if len(list(number)) != 10 or len(list(number)) != len(set(number)):
print ('false')
else:
print ('true')
def check_duplicate(num):
if len(num) == len(set(num)) == 10:
return True
return False
#num = input()
num = ['0123456789','01234','01234567890','6789012345','012322456789']
for i in num:
print(check_duplicate(i))
딕셔너리 사용해서 카운트하는걸로 작성했다가 set을 이용하는 것을 보고 lv1도 제겐 높은 수준임을 느끼고 갑니다 ㅜㅜ
a = list(input("0~9까지 숫자를 한번씩 입력하시오 :"))
print ("True" if '0123456789' == "".join(sorted(a)) else "False")
def Check(s):
a = []
for i in range(10):
a.append(0);
for c in s :
if c not in str( range(10) ) :
return False
a[int(c)]+=1
for i in range(10):
if ( a[i] != 1 ) :
return False
return True
s = "0123456789 01234 01234567890 6789012345 012322456789"
for s1 in s.split() :
print Check(s1) and "true" or "false" ,
C#
private bool checkCount(string test)
{
char[] array = test.ToCharArray();
int max =
(from t in array
group t by t into g
select g.Count()).Max();
return max > 1 ? false : true;
}
import math
str_inputVal=input("input :")
num_inputTrans=int(str_inputVal)
#자리수 계산용 코드
num_digit=int(math.log10(num_inputTrans))+1
set_mem=set()
for i in range(num_digit):
set_mem.add(num_inputTrans%10)
num_inputTrans=int(num_inputTrans/10)
if set_mem.__len__()==10:
print("입력된 값에는 0~9까지 모두 있습니다.")
else:
print("입력된 값에는 0~9 중 "+str(10-set_mem.__len__())+"개가 부족합니다.")
윗 분과 같이 set은 중복을 허용치 않는다는 것을 이용하여 제작하였습니다.
중간의 math.log10()부분은 입력받은 수의 자릿수를 구하기 위해 만든 부분입니다.
자릿수를 이용해서 for문으로 회전시켜 각 자릿수를 set 에 저장한 후 set의 크기를 이용해서 빠진 숫자가 있는지 확인하는 방식입니다.
참고로 이 방법에서 string으로 받은 문자열을 integer로 변환하는 과정이 있어 0으로 시작할 경우에는 0을 제외하게 됩니다. 만약 제일 처음 0을 무시하게 하고싶지 않다면 인풋을 받은 후 바로 앞이 "0"인지 확인하고 그후 set에 0을 집어넣으면 됩니다. 만약 0이 앞부분에 2개 이상이더라도 이 문제는 중복을 확인하는 문제임으로 무시해도 상관없다 생각합니다.
C# 박재우님의 아이디어를 차용해서 새로 짜 보았습니다.
private bool checkCount2(string test)
{
char[] array = test.ToCharArray();
return Enumerable.SequenceEqual(array, array.Distinct().ToArray<char>());
}
Javascript
var isDigitOneUsed = function(str) {
if (str.length < 10 || str.length > 10)
return false;
return isDuplicate(str);
},
isDuplicate = function(str) {
var usedMap = {};
for (var i=0; i<str.length; i++) {
if (usedMap[str[i]]) return false;
else usedMap[str[i]] = true;
}
return true;
};
//test
var input = '0123456789 01234 01234567890 6789012345 012322456789'.split(' ');
for (var i=0; i<input.length; i++)
console.log(isDigitOneUsed(input[i]))
(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)
import unittest
def IsDuplicated(number):
# 중복된 원소를 식별하기 위해 집합을 사용한다.
num2set = set(number)
# 입력된 숫자길이가 10보다 작으면 빠진 숫자가 있는 것이고,
# 또는 10이상이면 최소한 한자리는 중복될수 밖에 없다.
if not len(number) == 10:
return False
# 집합에서는 중복된 원소가 존재하지 않으므로,
# 중복을 피ㅏ려면 반드시 갯수가 10이어야 한다.
if not len(num2set) == 10:
return False
return True
class DuplicateNumberTest(unittest.TestCase):
def test_IsDuplicated(self):
self.assertEqual(IsDuplicated('0123456789'),True)
self.assertEqual(IsDuplicated('01234'), False)
self.assertEqual(IsDuplicated('01234567890'), False)
self.assertEqual(IsDuplicated('6789012345'), True)
self.assertEqual(IsDuplicated('012322456789'), False)
if __name__ == '__main__':
# unittest.main()
to_be_checked = input('sample inputs: ').split()
for number in to_be_checked:
if IsDuplicated(number):
print('true ', end = '')
else:
print('false ', end = '')
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]
-- java --
public class Duplicate_Numbers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("0 ~ 9의 문자를 사용하여 입력해주세요: ");
String[] in = sc.next().split("");
ArrayList<String> temp = new ArrayList<String>(Arrays.asList(in));
int sum = 0;
Collections.sort(temp);
for (int i = 0; i < temp.size()-1; i++) {
if (temp.get(i).equals(temp.get(i+1))) {
sum++;
break;
}
}
if (sum > 0 || temp.size() != 10) {
System.out.println("false");
} else {
System.out.println("true");
}
}
}
import java.util.*;
public class Test {
public static boolean isUnique(String str){
boolean[] number_set=new boolean[100];
for(int i=0; i<str.length(); i++){
int val=str.charAt(i);
if(number_set[val]){
return false;
}
number_set[val]=true;
}
return true;
}
public static void main(String[] args) {
System.out.println("숫자 입력 하세요 ");
Scanner sc=new Scanner(System.in);
System.out.println(isUnique(sc.next()));
}
}
java입니다. charAt 함수 이용해서, 순차적으로 분리합니다 val에 순차적으로 넣습니다. 그다음에 만약에 그 숫자가 이미존재하는거였으면 return false 아니면 number_set배열 해당 인덱스에 true넣습니다 ^^
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)
python3으로 짜봤습니다.
import string
for i in range(5):
sampleInput = input("could you write numbers?")
if sampleInput == string.digits:
print(True)
else:
print(False)
public static void main(String[] args) {
String result = "";
String[] split = "0123456789 01234 01234567890 6789012345 012322456789".split(" ");
for(String number : split) {
result += isDuplicateNumber(number) + " ";
}
System.out.println(result);
}
private static boolean isDuplicateNumber(String number) {
List<Character> comparedNumbers = createNumbers("0123456789".toCharArray());
List<Character> numbers = createNumbers(number.toCharArray());
Collections.sort(numbers);
return comparedNumbers.equals(numbers);
}
private static List<Character> createNumbers(char[] characters) {
List<Character> numbers = new ArrayList<Character>();
for(char character : characters) {
numbers.add(character);
}
return numbers;
}
#include <iostream>
#include <set>
using namespace std;
int main(int argc, const char * argv[]) {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
string t;
cin >> t;
bool ans = true;
if (t.size() < 10) {
ans = false;
} else {
set<int> n_set;
for (int j = 0; j < t.size(); j++) {
int tmp = t[j] - '0';
if (n_set.find(tmp) != n_set.end()) {
ans = false;
break;
} else n_set.insert(tmp);
}
if (ans && n_set.size() != 10) {
ans = false;
}
}
cout << (ans ? "true " : "false ");
}
cout << endl;
return 0;
}
def dup_check(s):
dic = {}
for i in range(len(s)):
dic[s[i]] = 1
if len(dic.keys()) != len(s):
return False
return True
s = "0123456789 01234 01234567890 6789012345 012322456789"
for s1 in s.split():
print dup_check(s1)
딕셔너리의 키값은 유일하다는 특성을 이용해서 구현해봤습니다.
0을 제외하고 1부터 9까지 더하면 45인걸 이용했습니다.
static void Main(string[] args)
{
string input = "0123456789 01234 01234567890 6789012345 012322456789";
input.Split(new char[] { ' ' }).ToList().ForEach((s) => Console.WriteLine("{0} ", IsDuplicate(s)));
}
static bool IsDuplicate(string input)
{
var table = new List<int>();
table.AddRange(input.Select((c) => (int)char.GetNumericValue(c)));
return table.Where((i) => i == 0).Count() == 1 & table.Count == 10 & table.Sum() == 45;
}
const int LEN = '0' + '1' + '2' + '3' + '4' + '5' + '6' + '7' + '8' + '9';
private static bool analysis(string data) {
int[] b = data.Distinct().Select(_s => Convert.ToInt32(_s)).ToArray();
return (b.Length == data.Length && b.Min() == '0' && b.Max() == '9' && b.Sum() == LEN);
}
C#으로 작성했습니다. time complexity는 O(n) 입니다.
public bool DuplicateNumbers(List<string> inputs)
{
var hash = new HashSet<int>(from i in inputs select int.Parse(i));
return hash.Count == 10;
}
C# 입니다.
string line = "0123456789 01234 01234567890 6789012345 012322456789";
string[] split = line.Split((string[])null, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < split.Length; i++)
Console.Write(new string(split[i].OrderBy(x => x).ToArray()) == "0123456789");
각 문자열을 나누고 정렬후에 비교하는 간단한 방법입니다.
a = "01234511"
arr={}
for i in range(1, a.__len__()+1):
aa = a[i-1:i]
arr[aa] = i
if( a.__len__() != arr.__len__()):
print "wrong"
파이썬 2.7
s = '0123456789 01234 01234567890 6789012345 012322456789'
l = s.split()
for i in l:
s_sorted = sorted(i.replace('', ' ').split())
if s_sorted == sorted(set('0123456789')):
print True
else:
print False
sample_input = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
for num in sample_input:
digit = list(num)
if len(digit) == sum([num.count(x) for x in digit]):
print(True, '\t', end='')
else:
print(False, '\t', end='')
sample_input = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
for num in sample_input:
digit = list(num)
if len(digit) == sum([num.count(x) for x in digit]):
print(True, '\t', end='')
else:
print(False, '\t', end='')
#include <stdio.h>
#define N 200
int main(void){
char arr[N];
char check[10]={0};
int i,j,ab;
scanf("%[^\n]",arr);
for(i=0;arr[i]!='\0';i++){
for(j=0;j<10;j++){
check[j]=0;
}
for(;(arr[i]!=' ')&&(arr[i]!='\0');i++){
j=(arr[i]-48);
check[j]++;
}
ab=0;
for(j=0;j<10;j++){
if(check[j]!=1){
printf("false ");
break;
}
else{
ab++;
}
}
if(ab==10){
printf("true ");
}
}
printf("\n");
return 0;
}
왜 내코드는 더러운가,,
insertion = raw_input()
jung = []
for i in range(0, len(insertion)):
jung.append(int(insertion[i]))
contrast = list(set(sorted(jung)))
if jung == contrast:
print("true")
else:
print("false")
def checkNumbers(s):
if len(s)!=10:
return False
for i in range(10):
if s.count(str(i))>1:
return False
return True
sl=["0123456789","01234","01234567890","6789012345","012322456789"]
for s in sl:
print checkNumbers(s),
Javascript 입니다.
function check(str){
var arr = new Array(10),
num;
if (str.length !== 10){
return false;
}
for (var i = 0; i < str.length; i++){
num = parseInt(str.charAt(i));
if (arr[num]){
return false;
}
arr[num] = true;
}
return true;
}
var s = ["0123456789", "01234", "01234567890", "6789012345", "012322456789"];
var i = 0;
while(i < s.length){
console.dir(check(s[i]));
i++;
}
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")
python 3.4
in_nums = input("sample inputs: ")
find_output = list()
for nums in in_nums.split():
find_output.append(len(nums) == len(set(list(nums))))
print("sample outputs:%s"%find_output)
strng = raw_input("input numbers:")
lst = []
for i in strng:
lst.append(eval(i))
lst.sort()
if lst == range(10):
print True
else:
print False
print lst
정렬시킨 다음에 0~9 리스트랑 일치하면 참, 아니면 거짓을 출력합니다
Java로 작성했습니다. 0부터 9까지 숫자를 각각 하나씩 넣은 크기가 10인 비교용 배열만들고, 입력 받은 값을 한자리씩 끊어서 배열에 넣었습니다. 우선 입력 받은 값을 저장한 배열의 크기가 10이 아니면 false를 출력하게 했습니다. 그 이후, 입력 받은 값을 통해 만든 배열과 비교용 배열을 비교했습니다. 비교 방법은 2중 for루프를 이용하여 입력받은 값과 동일한 비교용 배열값이 있으면 cnt값을 1 증가시키고, 동일한 값을 가지고 있는 비교용 배열의 해당 인덱스를 null처리 했습니다. 그래서 최종적으로 cnt값이 10이면 true를 출력하고 cnt값이 10이 아니면 false를 출력하게 했습니다.
import java.util.Scanner;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] checkPoint={"0","1","2","3","4","5","6","7","8","9"};
String[] tmp;
int cnt=0;
while(true){
System.out.print("write number :");
tmp=sc.next().split("");
if(tmp.length!=10){
System.out.println("false");
continue;
}
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(tmp[i].equals(checkPoint[j])){
checkPoint[j]=null;
cnt++;
}
else{
}
}//end inner forloop
}//end outer forloop
if(cnt==10){
System.out.println("true");
}
else{
System.out.println("false");
}
}//end while
}//end main
}//end class
def duplicate(input1):
lista=[]
for inputs in range(0,len(input1)):
if input1[inputs] not in lista:
lista.append(input1[inputs])
if len(lista) ==10:
return True
else:
return False
input1 = "0123456789"
print duplicate(input1)
Ruby
check_dup = ->nums{ nums.map(&:chars).map {|n| n==n.uniq&&n.size==10} }
Test
nums = %w(0123456789 01234 01234567890 6789012345 012322456789)
expect([true,false,false,true,false]).to eq(check_dup[nums])
text = raw_input("input a string of numbers, divided by a space")
tlist = text.split(" ")
for i in tlist:
if len(list(i)) == len(set(list(i))) and len(list(i)) == 10:
print "True"
else:
print "False"
```{.python}
a=input('숫자를 입력하시오 :' )
List=sorted(list(a)) n=0 for i in List: if int(i) == n: n+=1 else: break
if n==10: print('한번 씩 사용') else: print('한번 씩 사용 X')
```
자바입니다.. 입력받은 값의 바이트코드를 비교해서 숫자와 공백문자 이외의 입력을 받을경우 에러를 뱉도록 해놨어요
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
char[] c = str.toCharArray();
for (char ch : c) {
if (!((ch >= 48 && ch <= 57) || ch == 32)) {
throw new Exception("format error");
}
}
String[] str2 = str.split(" ");
for (int i = 0; i < str2.length; i++) {
boolean test = true;
char[] ccc = str2[i].toCharArray();
for (int j = 1; j < ccc.length; j++) {
if (ccc[j-1] == ccc[j]) {
test = false;
break;
}
}
System.out.print(test + " ");
}
}
while __name__ == '__main__':
inpt = input('입력: ')
print(min(list(False if inpt.count(str(x))>1 else True for x in range(10))))
파이썬 3.5.1입니다.
boolean duplicateNumbers(String s) {
boolean [] flag = new boolean[100];
for(int i=0; i<s.length(); i++) {
if((s.charAt(i)-'0' > 9 || s.charAt(i)-'0' < 0)) {
return false;
}
if(flag[s.charAt(i)]) {
return false;
}
flag[s.charAt(i)] = true;
}
return true;
}
자바
파이썬3.4입니다. Counter를 이용해 짜보았습니다. 예로 counter = Counter('011')를 하면, counter에는 딕셔너리가 반환됩니다. {'0': 1, '1': 2}
from collections import Counter
sample = ('0123456789', '01234', '01234567890', '6789012345', '012322456789')
for x in sample:
if len(x) != 10:
print('False\t', end='')
continue
counter = Counter(x)
if not [n for n in counter.values() if n >= 2]:
print('True\t', end='')
else:
print('False\t', end='')
print('')
0~9 팬디지털 숫자를 구하는 문제로군요. 파이썬입니다.
def pan(n):
return ''.join(sorted(str(n))) == '0123456789'
l = input().split()
print(' '.join(('true' if pan(x) else 'false' for x in l)))
Python
input_data = "0123456789 01234 01234567890 6789012345 012322456789"
data_list = input_data.split(' ')
for j in data_list:
if not len(j) == 10:
print(False)
continue
if not len(list(set(j))) == 10:
print(False)
continue
print(True)
C
#include <stdio.h>
// 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
void test_function(int arr[], int length) {
int i, j;
int check[10] = { 0, };
printf("%d\n", length);
//check 배열에 중복된 거 입력
for (i = 0; i < length; i++) {
for (j = 0; j < 10; j++) {
if (arr[i] == j) {
check[j] += 1;
}
}
}
//check 배열을 확인해서 출력
for (i = 0; i < 10; i++) {
if (check[i] > 1) {
printf("[%d] is duplication!\n", i);
}
}
}
int main() {
int arr1[] = { 0,1,2,3,4,5,6,7,8,9 };
int arr2[] = { 0,1,2,3,4 };
int arr3[] = { 0,1,2,3,4,5,6,7,8,9,0 };
int length1 = sizeof(arr1) / sizeof(arr1[0]);
int length2 = sizeof(arr2) / sizeof(arr2[0]);
int length3 = sizeof(arr3) / sizeof(arr3[0]);
test_function(arr1, length1);
test_function(arr2, length2);
test_function(arr3, length3);
return 0;
}
#파이썬3.5.1
def do(s:str) -> bool:
ans = 0
for i in [str(x) for x in range(0,10)]:
if s.count(i) == 1:
ans += 1
if ans == 10:
return True
else:
return False
case = []
while True:
n = input()
if n == '':
break
case.append(n)
for i in case:
print(do(i))
파이썬입니다. 그냥 무식하게 했습니다
def check(numstr):
lst=[]
if len(numstr)!=10: return 0
for mem in numstr:
if mem not in lst: lst.append(mem)
else: return 0
return 1
user_input = raw_input("Enter any number ; ")
if check(user_input): print "true"
else: print "false"
>>> a = lambda x: len(set(x)) == 10
>>> a('1234567890')
True
>>> a('123456789')
False
>>> a('1234567893')
False
Python 2.7입니다.
하나씩 무조건 사용되어야 하기에 기본 갯수가 안되면 우선 False로 리턴하고
그렇지 않은 경우에는 중복 여부를 기록하는 리스트를 사용하여 판별하였습니다.
def check_duplication(inp):
inp = str(inp)
check_list = [0]*10
if len(inp) != 10:
return False
else:
for x in inp:
check_list[int(x)] += 1
if check_list[int(x)] > 1:
return False
return True
result = check_duplication("6789012345")
print(result)
C++ 이에요 - map 자료구조를 이용했어요.
#include <iostream>
#include <cstdio>
#include <map>
#include <string>
using namespace std;
int main(){
string s;
cin >> s;
map<char,int> mp;
for (char c = '0'; c <= '9'; c++){
mp[c] = 0;
}
for (int i = 0; i < s.size(); i++){
mp[s[i]]++;
}
for (map<char,int>::iterator it = mp.begin(); it != mp.end(); it++){
if (it->second > 1 || it->second == 0){
cout << "false" << endl;
return 0;
}
}
cout << "true" << endl;
return 0;
}
파이썬 2.7
#coding=utf-8
def numbercheck():
n=input('숫자:')
a=str(n)
b=set(a)
if len(b)==9:
if len(b)==len(a):
print True
else:
print False
else: print False
numbercheck()
def sample_inputs(str_a):
list_a=str_a.split()
for i in list_a :
if list("".join(i)).count("0") == 1:
if eval("+".join(i))==45:
print("True")
else :
print("False!")
else :
print("False!")
sample_inputs("0123456789 01234 01234567890 6789012345 012322456789")
Python 3.5.2
자바로 코딩
1. 입력된 String 숫자 만큼 배열 선언 후
2. 각 배열에 숫자 만큼 카운팅
3. 각 배열의 숫자가 1이면 chkCnt 에 증가
public static void main(String[] args){
String value = "0123456789";
String[] ch = value.split("");
int[] intArray = new int[ch.length];
int chkCnt = 0;
for( String cc : ch ){
int num = Integer.parseInt(cc);
intArray[num]++;
}
for( int number : intArray ){
System.out.println(number);
if( number == 1 ){
++chkCnt;
}
}
if( chkCnt == 10 ){
System.out.println("true");
}else{
System.out.println("false");
}
}
def checker(number):
count = 0
i = 0
while i<10:
if str(i) in number:
count += 1
i += 1
if count == 10:
return True
else:
return False
String str = "0123456789";
String result = "";
Scanner sc = new Scanner(System.in);
String num= sc.nextLine();
List<String> list= new ArrayList<String>();
for(int i=0; i<num.length(); i++)
list.add((num.substring(i,i+1)));
Collections.sort(list);
for(int i=0; i<list.size(); i++)
result += list.get(i);
if(str.equals(result))
System.out.println("true");
else
System.out.println("false");
}
python 3.5 숫자값을 입력받아 0~9까지 한번만 들어가는지 확인하게끔 했습니다.
def check_one_number(num):
for i in range(10):
if num.count(str(i)) != 1:
print("False")
return
print("True")
check_one_number('6789012345')
def Duplicate_Numbers(NUM):
Num_list = NUM.split()
for n in Num_list:
if ''.join(sorted(n))=="0123456789":
print"true"
else:
print "false"
NUM = raw_input("Input Numbers:")
Duplicate_Numbers(NUM)
s=input().split()
for i in s:
count=[0,0,0,0,0,0,0,0,0,0]
sig=1
for j in i:
count[int(j)]+=1
for j in range(10):
sig*=count[j]
if sig==1:print("true ",end=" ")
else: print("false ", end=" ")
파이썬으로 이렇게 복잡하게도 만들수 있습니다. T.T (언어 특성을 아직 이해하지 못해서..)
def duplicateNumberBF(input):
splitList = input.split()
resultString = ""
#loop all input string
for numberString in splitList:
numberSet = set()
duplicated = False
for i in str(numberString):
if i not in numberSet:
numberSet.add(i)
else:
duplicated = True
break
if len(numberSet) != 10 or duplicated:
resultString +='False '
else:
resultString +='True '
return resultString
print(duplicateNumberBF('0123456789 01234 01234567890 6789012345 012322456789'))
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")." ";
}
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
#define STR_LEN 100
void torf(char*);
int main(void){
char str[STR_LEN] = { 0, };
printf("input : ");
gets_s(str);
printf("sample output : ");
torf(str);
system("pause");
return 0;
}
void torf(char* str) {
char* rst;
rst = strtok(str, " ");
while (rst != NULL) {
sort(rst, rst + strlen(rst));
//정렬 했지만
if (strstr(rst, "0123456789") != NULL) {
if (strlen(rst) == 10) {
printf("true ");
}//01234567899 와 같은 경우도 true가 나오기에
else {
printf("false ");
}
}
else {
printf("false ");
}
rst = strtok(NULL, " ");
}
}
파이썬
def dupCheck(input):
input_split = input.split(" ")
result = ""
for i in range(len(input_split)):
set_input = list(set(input_split[i]))
tot = 0
for j in range(0,10):
for k in range(len(set_input)):
if int(set_input[k]) == j:
tot += 1
if tot == 10:
result = result + "True" + " "
else:
result = result + "False" + " "
print(result)
input = "0123456789 01234 01234567890 6789012345 012322456789"
print(dupCheck(input))
파이썬 코드입니다. 0부터 9까지가 한번씩만 쓰인, 즉 sort했을때 0123456789가 되는 것만 True로 반환하는 zero_to_nine이라는 함수와 쓰인 것과 상관없이 그냥 중복이 있는 지의 여부만 판단하는 duplicate함수를 만들어봤습니다.
def zero_to_nine(s):
s = str(s)
if len(s) != 10:
return False
l = [x for x in s]
l.sort()
if l == ['0','1','2','3','4','5','6','7','8','9']:
return True
else:
return False
def duplicate(s):
s = str(s)
l1 = [x for x in s]
if l1 == list(set(l1)): return True
else: return False
파이썬 초보입니다. 많은 피드백 부탁드립니다!!
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
List<Boolean> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
String numStr = scan.next();
char[] charArr = numStr.toCharArray();
int charArrSize = charArr.length;
Set<Character> filterSet = new HashSet<>();
for (char n : charArr) {
filterSet.add(n);
}
int filterSetSize = filterSet.size();
if (filterSetSize == 10 && charArrSize == filterSetSize) {
list.add(true);
} else {
list.add(false);
}
}
for(boolean b : list){
System.out.print(b + " ");
}
}
}
안녕하세요. C++로 풀어봤습니다.
0~9가 모두 한번씩 사용되어야 true가 나오도록 했습니다.
#include<iostream>
#include<string>
using namespace std;
void main()
{
cout<<"Hello Stranger??"<<endl;
string str;
int arr[10] = {0};
cout<<"숫자를 을 입력하시오"<<endl;
cin>>str;
for(int i=0; i<str.length(); i++)
{
int val = (int)str[i]-48;
arr[val]++;
}
int res = 1;
for(int i=0; i<10; i++)
res *= arr[i];
if(res == 1)
cout<<"true";
else
cout<<"false";
}
def duplicate_num(arg):
return len(str(arg)) == len(list(set(str(arg))))
print(duplicate_num('0123456789'))
print(duplicate_num('01234'))
print(duplicate_num('01234567890'))
print(duplicate_num('6789012345'))
print(duplicate_num('012322456789'))
0~9 모든 숫자를 입력해야 하는것이라면 다음과 같습니다.
def duplicate_num(arg):
return len(str(arg)) == 10 and len(str(arg)) == len(list(set(str(arg))))
print(duplicate_num('0123456789'))
print(duplicate_num('01234'))
print(duplicate_num('01234567890'))
print(duplicate_num('6789012345'))
print(duplicate_num('012322456789'))
Python 3.5.2에서 작성하였습니다.
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로 확인
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")
box=range(0,10) values=raw_input("> ") for i in values: box.remove(int(i)) if box: print 'false!' else: print 'true!'
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 ####
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"))
#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"
$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));
// 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;
}
public class Test488 {
public static void main(String[] args) {
duplicateNumbers("0123456789");
duplicateNumbers("01234");
duplicateNumbers("01234567890");
duplicateNumbers("6789012345");
duplicateNumbers("012322456789");
}
private static void duplicateNumbers(String number) {
int[] numberArray = new int[10];
boolean result = true;
if (number.length() != 10) {
result = false;
} else {
for (int i = 0; i < number.length(); i++) {
numberArray[number.charAt(i) - '0']++;
if (numberArray[number.charAt(i) - '0'] > 1) {
result = false;
break;
}
}
}
System.out.println(number + " : " + result);
}
}
0123456789 : true
01234 : false
01234567890 : false
6789012345 : true
012322456789 : false
def dupli(n):
n=str(n)
dic={}
for i in range(10):
dic[i]=0
for i in n:
dic[int(i)]+=1
m=1
for i in dic.keys():
m*=dic[i]
if m==1:
return True
else:
return False
import java.util.*;
public class DuplicateNumbers {
public static void main(String[] args) {
List<String> list = Arrays.asList(new Scanner(System.in).next().split(""));
System.out.println(list.size() == 10 && new HashSet<>(list).size() == 10);
}
}
/*
dev : peanutBro
date : 170218
content :
일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.
0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
sample outputs: true false false true false
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int inputCount;
string *inputString;
int** numCount;
bool flagOverlap;
cout << "숫자를 몇개 입력하실껀가요? : ";
cin >> inputCount;
inputString = new string[inputCount];
numCount = new int*[inputCount];
for (int i = 0; i < inputCount; i++)
{
numCount[i] = new int[10]; // 10은 0~9
for (int j = 0; j < 10; j++)
{
numCount[i][j] = 0;
}
}
cout << "숫자를 " << inputCount << "개 입력하세요 : ";
for (int i = 0; i < inputCount; i++)
{
cin >> inputString[i];
}
for (int i = 0; i < inputCount; i++)
{
for (int j = 0; j < inputString[i].length(); j++)
{
numCount[i][inputString[i][j]-'0']++;
}
}
for (int i = 0; i < inputCount; i++)
{
flagOverlap = true;
for (int j = 0; j < 10; j++)
{
if (numCount[i][j] != 1)
{
flagOverlap = false;
}
}
if (flagOverlap)
{
cout << "true ";
}
else
{
cout << "false ";
}
}
for (int i = 0; i < inputCount; i++)
{
delete[] numCount[i];
}
delete[] numCount;
delete[] inputString;
return 0;
}
파이썬 2.7
data = raw_input('?')
if len(data) != 10:
print 'false'
else:
da = [da for da in data]
if len(set(da)) == 10:
print 'true'
else:
print 'false'
num = input("숫자를 입력하시오")
def check_num(num):
if len(set(num)) == len(num):
print("True")
else:
print("False")
파이썬입니다. 0이 10개 들어있는 list를 만드는 것을 좀더 간단하게 하는 좋은 방법이 있을까요? MATLAB에서는 a=zeros(1,10) 이런 식으로 합니다.
input_nums=['0123456789','01234','01234567890','6789012345','012322456789']
for nums in input_nums:
# declare an array (or list) to store the frequency of presence of each number
check_cnt=[]
for p in range(0,10):
check_cnt.append(0)
# add frequency
for num in nums:
check_cnt[int(num)]+=1
# check if each number is used only once
check_freq=True
for freq in check_cnt:
if freq!=1:
check_freq=False
break
# print result
print(check_freq)
public void go(String num) {
boolean a=true;
char [] split = num.toCharArray();
if(split.length!=10) a=false;
for(int i=0 ; i<split.length-1 ; i++) {
for(int j=i+1 ; j<split.length ; j++) {
if(split[i]==split[j]) a=false;
}
}
System.out.print(a);
}
파이썬
s = "0123456789 01234 01234567890 6789012345 012322456789"
a = s.split(" ")
for x in a:
x = sorted(x)
x = ''.join(x)
if x == "0123456789":
print("True")
else:
print("false")
0~9까지 한 번씩 써야하므로 input의 크기가 10이여야만 하니까 10이 아니면 return false boolean 배열을 만들어 0~9가 다 쓰였는지 체크합니다.
public class Duplicate_number {
private String num = "1352469870";
private boolean check[] = new boolean[10];
public boolean go(){
if(num.length() != 10)
return false;
String b[] = num.split("");
for(int i = 0, temp = 0; i < 10; i++){
temp = Integer.parseInt(b[i]);
if(check[temp] == true)
return false;
else
check[temp] = true;
}
return true;
}
}
파이썬 3.6.0입니다.
list, map, all 등을 사용했습니다.
# Python 3.6.0
a=list(input('please input number: '))
freq=[0]*10;
for digit in a:
freq[int(digit)]+=1
print(all(list(map(lambda x:x==1,freq))))
//이게 레벨이 1이...????
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;
}
a = sorted(int(x) for x in input('숫자를 입력하세요'))
print(len(a) == 10 and a == list(x for x in range(10)))
# Duplicate Numbers
def duplicate_test(num):
check = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in num:
check[int(i)] += 1
count = 0
for i in check:
if int(i) == 1:
count += 1
if count == 10:
return print("true")
else:
return print("false")
duplicate_test('0123456789')
duplicate_test('01234')
duplicate_test('01234567890')
duplicate_test('6789012345')
duplicate_test('012322456789')
0부터 9까지의 숫자가 몇 번씩 나오는지 체크한 다음에 모두 1번씩만 나온 경우 true가 출력되도록 코딩했습니다.
def check_dup(num_list):
result = []
for x in num_list:
if len(x) == len(set(x)) : result.append( 'True' )
else : result.append( 'False' )
return result
print(check_dup(['0123456789','01234','01234567890','6789012345','012322456789']))
package training;
/**
* 일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.
* 0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
* sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
* sample outputs: true false false true false
*/
public class DuplicateNumber {
public static void main(String[] args) {
String str1 = "0123456789";
String str2 = "01234";
String str3 = "01234567890";
String str4 = "6789012345";
String str5 = "012322456789";
char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
char[] arr3 = str3.toCharArray();
char[] arr4 = str4.toCharArray();
char[] arr5 = str5.toCharArray();
System.out.println(isChecked(arr1));
System.out.println(isChecked(arr2));
System.out.println(isChecked(arr3));
System.out.println(isChecked(arr4));
System.out.println(isChecked(arr5));
}
public static boolean isChecked(char[] arr) {
int iLength = arr.length;
int iSum = 0;
for(int i=0;i<iLength;i++){
for(int j=0;j<i;j++){
if(arr[i] == arr[j]){
return false;
}
}
if(arr[i] == '1' || arr[i] == '2' || arr[i] == '3' || arr[i] == '4' ||
arr[i] == '5' || arr[i] == '6' || arr[i] == '7' || arr[i] == '8' ||
arr[i] == '9' || arr[i] == '0'){
iSum++;
}
}
if(iSum == 10){
return true;
} else {
return false;
}
}
}
private static boolean duplicateNumber(String input){
int check[] = new int[10];
for(int i=0; i<input.length(); i++){
int c = input.charAt(i) - '0';
check[c]++;
}
for(int j=0; j<check.length; j++){
if(check[j] != 1){
return false;
}
}
return true;
}
c로 풀었습니다.
#include <stdio.h>
void main() {
int chk[10] = { 0, };
char num[20];
int i;
printf("inputs : ");
scanf("%s", num);
printf("output : ");
for (i = 0; num[i] != NULL; i++) {
chk[num[i] - 48]++;
}
for (i = 0; i<10; i++) {
if (chk[i] > 1) {
printf("false");
return 0;
}
}
printf("true");
}
result=[]
l=[]
a=input(':')
for i in a:
result.append(int(i))
for k in range(10):
num=result.count(k)
if num==1 or num==0:
l.append("true")
else:
l.append("")
print(all(l))
string = input("Input a list of numbers. > ")
key = "0123456789"
key_list = [0,0,0,0,0,0,0,0,0,0]
for number in string:
if number in key:
key_list[int(number)] = key_list[int(number)] + 1
if key_list == [1,1,1,1,1,1,1,1,1,1]:
print(True)
else:
print(False)
Java로 작성했습니다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;
public class test {
public static void main(String[] args) {
int flag = 0;
ArrayList<String> as = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
StringTokenizer st = new StringTokenizer(sc.nextLine(), " ");
while(st.hasMoreTokens()){
as.add(st.nextToken());
}
for (int k = 0; k < as.size(); k++) { // 어레이리스트 사이즈만큼
flag =0;
int[] count = new int[10];
for (int i = 0; i < as.get(k).length(); i++) { // 하나의 스트링
for (int j = 0; j < 10; j++) { // 하나의 글자
if (((int) as.get(k).charAt(i) - 48) == j)
count[j]++;
}
}
for (int i = 0; i < count.length; i++) {
if (count[i] != 1) {
System.out.print("false\t");
flag++;
break;
}
}
if (flag == 0) {
System.out.print("true\t");
}
}
}
}
a = input("입력하세요:")
b = list(str(a))
for i in range(1,11):
x = str(i-1)
for j in range(1,len(b)+1):
if b[j-1] == x:
del b[j-1]
break
if b == []:
print ("True")
else:
print ("False")
a = input("입력하세요:")
b = list(str(a))
b.sort()
c = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
if b == c:
print ("True")
else:
print ("False")
def duplicate(x):
if len(x) != 10: return False
else:
try:
l = [i for i in range(10)]
for i in range(10):
l.remove(int(x[i]))
except ValueError: return False
return True
duplicate('3698545470')
# False
using static System.Console;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
string sample = "0123456789 01234 01234567890 6789012345 012322456789";
sample.Split(' ').ToList().ForEach(str => Write(IsDuple(str) + " ")); ;
WriteLine();
}
static bool IsDuple(string str)
{
var hsc = new HashSet<char>(str);
return hsc.Count == 10 && str.Length == hsc.Count;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자 입력 : ");
String num = sc.nextLine();
char[] num1 = num.toCharArray();//캐릭터 배열로 변환
Arrays.sort(num1);//작은수 대로 정렬
String num2 = new String(num1);//작은수로 정렬한 캐릭터배열을 다시 스트링으로 변환
boolean a = num2.equalsIgnoreCase("0123456789");//0123456789와 같은지 확인
System.out.println(a);
}
let arr = [];
let sumFunc = (num) => {
for(let i = 0; i <= 9; i++){
let sum = ((num+'').charAt(i))*1;
if(arr[sum] == null){
arr[sum] = sum;
}else{
return 'false';
}
}
return 'true';
}
console.log(sumFunc(6789012345));
javascript
var once = str => str.split("").sort().join("") === "0123456789";
var input = ["0123456789", "01234", "01234567890", "6789012345", "012322456789"];
for (s of input) {
console.log(`${s} : ${once(s)}`);
}
C#
using System;
class Program
{
static void Main(string[] args)
{
//Console.Write("inputs: ");
//string inputString = Console.ReadLine();
string inputString = "0123456789 01234 01234567890 6789012345 012322456789";
string[] inputStrings = inputString.Split();
bool isValid(string s) // 로컬 함수
{
byte[] counters = new byte[10]; // 1 byte 정수형
foreach (char c in s) // string --> char 바로 되네!
{
try
{
counters[c - '0']++;
}
catch // index 벗어날 경우
{
return false;
}
}
foreach (int counter in counters)
{
if (counter != 1)
{
return false;
}
}
return true;
}
foreach (string s in inputStrings) // "var": 타입 추론
{
Console.Write("{0} ", isValid(s));
}
}
}
처음 써 봅니다.
Python 3으로 풀었습니다.
def same_count(s):
cnts = {str(i): 0 for i in range(10)}
for c in s:
cnts[c] += 1
return len(set(cnts.values())) == 1
여러번씩 나오는 것도 True라고 생각하고 짰는데, 딱 1번씩만 나와야 하면 아래처럼 하는게 맞겠네요.
def one_count(s):
return sorted([x for x in s]) == [str(i) for i in range(10)]
package java_tutorial;
import java.util.Arrays;
import java.util.Scanner;
public class Duplicate_Check {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Input : ");
String input = sc.nextLine();
int list_Num = 1;
int count = 0;
for(int i = 0; i < input.length(); i++)
{
if(input.charAt(i)==' ')
{
list_Num++;
}
}
String []numst_List = new String[list_Num];
int [][]num_Count = new int[list_Num][10];
Arrays.fill(numst_List, "");
for(int i = 0; i < list_Num; i++)
{
Arrays.fill(num_Count[i], 0);
}
for(int i = 0; i < input.length(); i++)
{
if(input.charAt(i)==' ')
{
count++;
continue;
}
numst_List[count] += input.charAt(i);
}
for(int i = 0; i < list_Num; i++)
{
for(int j = 0; j < numst_List[i].length(); j++)
{
num_Count[i][(int)(numst_List[i].charAt(j)-48)%10]++;
}
}
System.out.print("sample : ");
for(int i = 0; i < list_Num; i++)
{
for(int j = 0; j < 10; j++)
{
if(num_Count[i][j]>1)
{
System.out.print("False ");
break;
}
if(j==9)
{
System.out.print("True ");
}
}
}
}
}
def checking_numstr() :
string = input("serial numbers in 0 ~ 9 : ")
strlist = list(string)
if len(strlist) == 10 :
if len(set(strlist)) == 10 :
return True
else :
return False
else :
return False
python 3.6.2 에서 작성햇습니다
a = list(str(input("input: ")))
res_1 = len(str(a))
res_2 = len(list(set(a)))
if res_1 == res_2:
print(True)
else:
print(False)
set으로 중복된 숫자는 사라지는 특성을 이용햇습니다
def checkNum(nums):
print((lambda x:'true' if x == '0123456789' else 'false')(''.join(sorted(nums))))
checkNum('0123456789')
checkNum('01234')
checkNum('01234567890')
checkNum('6789012345')
checkNum('012322456789')
# python 3.6
inp = input()
cnv = ["".join(sorted(s)) for s in inp.split()]
print([True if s == "0123456789" else False for s in cnv])
public static void main(String[] args) {
int size = 0;
boolean boo = false;
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요");
String[] stList = sc.next().split("");
List<String> list = Arrays.asList(stList);
size = list.size();
Collections.sort(list);
for(int i = 1; i < size; i++) {
if(list.get(i - 1) == list.get(i)) {
boo = false;
} else {
boo = true;
}
}
if(!boo || size != 10) {
System.out.println("false");
} else {
System.out.println("true");
}
}
''' 입력받은 수자를 리스트로 바꿈'''
a = input()
b = list(str(a))
c = list(map(int, b))
'''리스트를 set형으로 바꾸고 비교함'''
def check():
if len(set(c))==len(c) and len(c)==10:
return True
return False
print(check())
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("sample inputs:");
String str = scan.nextLine();
System.out.println(isTrue(str));
}
static boolean isTrue(String str){
boolean Istrue=true;
int cnt=0;
boolean result = false;
String[] list =str.split("");
for(int i=0;i<10;i++){
if(str.contains(Integer.toString(i))){
cnt++;
}
}
for(int i=0;i<list.length-1;i++){
for(int j=i+1;j<list.length;j++){
if(list[i].equals(list[j])){
Istrue=false;
}
}
}
if(cnt==10 && Istrue==true)
result = true;
return result;
}
def hh():
sample = input(":")
for i in range(len(sample)):
if sample.count(sample[i]) >= 2:
return False
else:
return True
print(hh())
다른분에 비해 제껀 좀 많이 길어요 ㅠ
입력하며 테스트하기 귀찮아서 랜덤넘버로 처리했는데, True 나올 확률이 너무 낮네요.
# 한글 처리 in Atom 1.21.1 + Anaconda(Python 3.6.3)
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')
# 일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.
# 0~9까지의 문자로 된 숫자를 입력 받았을 때,
# 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
# sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
# sample outputs: true false false true false
import random
inputs = [str(random.randint(1, 10000000000)) for i in range(5)]
inputs += ["0123456789", "01234", "01234567890", "6789012345", "012322456789"]
for test_number in inputs:
print(test_number, ":", len(test_number) == 10 and len(list(set(test_number))) == 10)
a = ['0123456789', '01234','01234567890','6789012345','012322456789'] c = [] for i in range(0, len(a)): for j in range(0, len(a[i])): b = [] for k in range(len(a[i])): b.append(a[i][j] == a[i][k]) if b.count(True) > 1: c.append("T") else: c.append("F") d = [] for element in a: d.append(len(element))
r1 = (c[0:10]) r2 = (c[10:15]) r3 = (c[15:26]) r4 = (c[26:36]) r5 = (c[36:48])
Final_result =[]
if r1.count('T') > 1: Final_result.append('False') else: Final_result.append('True') if r2.count('T') > 1: Final_result.append('False') else: Final_result.append('True') if r3.count('T') > 1: Final_result.append('False') else: Final_result.append('True') if r4.count('T') > 1: Final_result.append('False') else: Final_result.append('True') if r5.count('T') > 1: Final_result.append('False') else: Final_result.append('True') print(Final_result)
require(stringr)
obj <- str_split('0123456789 01234 01234567890 6789012345 012322456789',' ') %>% unlist()
check <- function(x) {
a <- str_split(x,'') %>% unlist() %>% sort()
if( sum(a %in% as.character(0:9)) == 10 ){
return(T)
} else {
return(F)
}
}
sapply(obj, check)
sort로 문자열 정렬해서, 0~9를 원소로 가진 문자벡터와 동일하면 T 다른 F인 함수를 적용해봤습니다.
파이썬 입니다.
def chk_dupl(strs):
str = strs.split()
dupl = []
for i in range(len(str)):
if len(set(str[i])) == len(str[i]):
dupl.append(True)
else:
dupl.append(False)
return dupl
print (chk_dupl('0123456789 01234 01234567890 6789012345 012322456789'))
python
def V(nums, v=0):
for i in nums:
if nums.count(i) == 1: v += 1
if v == 10: print('True')
else: print('False')
python
def Q(nums):
if "".join(sorted(list(nums))) =='0123456789': print('True')
else: print('False')
inp = '0123456789 01234 01234567890 6789012345 012322456789'
for n in inp.split():
print('0123456789' == ''.join(sorted(n)))
python입니다
import re
sample_inputs = "0123456789 01234 01234567890 6789012345 012322456789"
k = sample_inputs.split()
same_len = []
for x in range(len(k)):
if len(set(k[x])) == len(k[x]) and len(set(k[x])) == 10:
same_len.append(True)
else:
same_len.append(False)
print(same_len)
def tester(number):
if len(number)!=10:
return False
else:
tmp1=set(map(str, number))
if len(number)==len(tmp1):
return True
else:
return False
nums=input('numbers: ').split()
for i in range(len(nums)):
print('{}: {}'.format(nums[i], tester(nums[i])))
파이썬
def main(s):
t = '0123456789'
for i in t:
d = 0
for g in s:
if i == g:
d += 1
if d != 1:
print("false","\n")
return
else:
pass
print("true","\n")
s = input(" ▶ 숫자를 입력하세요: ")
print("\n")
main(s)
▶ 숫자를 입력하세요: 01233564
false
▶ 숫자를 입력하세요: 9834652170
true
private static void checkStr(String inputedValue) {
// TODO Auto-generated method stub
//1부터 9까지의 합
int checkVal = 45;
char[] charArr = inputedValue.toCharArray();
boolean resultVal = false;
int addVal = 0;
//0이 있는지
for(int i=0; i<charArr.length; i++)
{
addVal+=((int)charArr[i])-48;
if((((int)charArr[i])-48) ==0)
{
resultVal = true;
}
}
//1부터9까지의 합 45와 일치하는지
if(resultVal)
{
resultVal = (checkVal==addVal);
}
System.out.println("결과 : "+resultVal);
}
01234가 false인거 보니 숫자가 한번씩은 무조건 들어가야 하는 것 같습니다. 그래서 0이 있는지와, 합이 45인지만을 체크하도록 했습니다.
자바
package cddj;
import java.util.Arrays;
import java.util.Scanner;
public class cddj11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("0~9 : ");
String A = input.nextLine().split("");
String ans = "0123456789";
String[] ANS = ans.split("");
Arrays.sort(A);
if (Arrays.equals(A, ANS)) System.out.println("true");
else System.out.println("flase");
}
}
d = input("plz input num : ")
def dis(d):
for i in range(10):
if d.count(str(i)) == 1:
continue
else:
return print("False")
return print("True")
dis(d)
sample = "0123456789"
def checkNumber(input):
number_list = list(input)
number_list.sort() # sort()는 변수 자체가 정렬됨
sorted_input = ""
for num in number_list:
sorted_input += num
if sorted_input.__eq__(sample):
print(True)
else:
print(False)
import java.util.*;
public class DuplicateNumbers { //JAVA
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Set<Character> set = new HashSet<Character>();
System.out.print("A sample input: ");
String str = scan.nextLine();
// set 초기화
for (Character c : str.toCharArray()) set.add(c);
// 조건 1. set의 elements 중복 유무
// 조건2. str의 elements 개수가 10개가 맞는가
System.out.print("A sample output: ");
System.out.println((set.size()==10 && str.length()==10)? "true" : "false");
scan.close();
}
}
def onetime(num):
print(len(set(num)) == 10 and len(num) == 10)
number = input("0~9까지의 숫자를 입력하세요: ")
onetime(number)
def duplicate_numbers(s):
d = {}
for c in s:
if c not in dict.keys():
d[c] = 1
else:
d[c] += 1
for value in dict.values():
if value > 1:
print('False', end=' ')
else:
print('True', end=' ')
if __name__ == '__main__':
sample = '0123456789 01234'
sample = sample.replace(' ', '')
print(duplicate_numbers(sample))
numbers = input("숫자를 입력하세요: ")
if len(numbers) != 10 or len(set(numbers)) != len(numbers):
print("false")
else:
print('true')
java입니다.
import java.util.Scanner;
public class level_1_Duplicate_Numbers {
public static void main(String[] args) {
System.out.println("0~9까지의 문자로 된 10자리의 숫자열을 입력하세요.");
Scanner sc = new Scanner(System.in);
String stringnumber = sc.nextLine(); //숫자열 정의, 입력.
sc.close();
int[] intnumber = new int[stringnumber.length()]; //숫자열을 int타입으로 변환할 배열 생성.
String[] splitstringnumber = stringnumber.split(""); //숫자열을 배열에 쪼개서 넣기.
int temp = 0;
int count = 0;
if(stringnumber.length() == 10)
{
for(int i = 0; i < 10; i++) //쪼개넣은 숫자열을 int타입으로 변환하여 int타입 배열에 차례로 넣기.
{
intnumber[i] = Integer.parseInt(splitstringnumber[i]);
}
for(int j = 0; j < 9; j++)
{
if(intnumber[j] > intnumber[j + 1]) //오름차순으로 재정렬.
{
temp = intnumber[j];
intnumber[j] = intnumber[j+1];
intnumber[j+1] = temp;
}
for(int h = 0; h < 9; h++)
{
if(intnumber[h] == intnumber[h + 1])
{
System.out.println("입력하신 숫자열에 2번 이상 들어간 숫자가 있습니다. False");
return;
}
else
{
count++;
if(count == 9)
{
System.out.println("True");
}
}
}
}
}
else
{
System.out.println("10자리의 숫자열이 아닙니다.");
}
}
}
와 어떻게 한건지는 모르겠는데 성공시켰네요. 분명 제가 모르는 틀린게 있을거같은데...
자바요...ㅎㅎ
static int[][] arr = { { 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 }, { 8, 0 },
{ 9, 0 } };
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
if (str.contains(" ")) {
String[] strArr = str.split(" ");
for(int i = 0; i < strArr.length; i++)
System.out.println(chkArr(strArr[i]));
} else
System.out.println(chkArr(str));
}
public static boolean chkArr(String str) {
for (int i = 0; i < str.length(); i++) {
if ((str.charAt(i) - '0') == arr[i][0]) {
if (arr[i][1] != 0) {
return false;
} else {
arr[i][1] += 1;
}
}
}
for (int j = 0; j < arr.length; j++) {
if (arr[j][1] != 1)
return false;
}
return true;
}
def onlyonce(number, n):
a = str(number)
n = str(n)
if n in a:
return True
else:
return False
def duplicate(number):
a = str(number)
if len(a) != 10:
return False
else:
check = []
for i in range(10):
check.append(onlyonce(number, i))
return all(check)
def count(a):
i=0
result=[]
while i<10:
for x in sorted(a):
result+=[x==str(i)]
i+=1
print(all(result))
파이썬
import java.util.*;
public class Main { public static void main(String[] args) { Scanner scanf=new Scanner(System.in);
String s=scanf.next();
StringBuffer sb=new StringBuffer();
int cnt=0;
boolean x=true;
if(s.length()!=10) {
x=false;
}
for(int i=0; i<=9; i++) {
for(int j=0; j<s.length(); j++) {
if(i==Integer.parseInt(s.charAt(j)+"")) {
cnt=cnt+1;
}
}
sb.append(cnt);
}
if(sb.toString().equals("1111111111")) {
x=true;
}
else {
x=false;
}
System.out.println(x);
}
}```{.java}
```
def dn():
number=str(input('type number:'))
i=0
digit_num=[]
for i in range(10):
count=number.count('%d' %(i))
digit_num.append(count)
if count>1:
print 'False at %d' %(i)
if digit_num.count(0)+digit_num.count(1)==len(digit_num):
print 'True'
else:
print 'False'
자바스크립트입니다! 처음에 하나하나 세는식으로 풀다가 다른분들 풀이보고 다시 풀어 보았습니다!!
var input;
var output = 'true';
var _input = new Array();
var seperatedInput = input.split('');
for(var i = 0; i < seperatedInput.length; i++) {
_input.push(parseInt(seperatedInput[i]));
}
var checkList = new Array();
for(i = 0; i < 10; i++) {
checkList[i] = 0;
}
if(_input.length != 10) {
output = 'false';
} else {
for(i = 0; i < _input.length; i++) {
checkList[_input[i]]++;
if(checkList[_input[i]] > 1) {
output = 'false';
}
}
}
console.log(output);
//다시 만들어보기
var input;
var output = 'true';
var _input = new Array();
var seperatedInput = input.split('');
for(var i = 0; i < seperatedInput.length; i++) {
_input.push(parseInt(seperatedInput[i]));
}
_input.sort()
var join = _input.join('');
if(_input.length != 10) {
output = 'false';
} else {
if(join !== '0123456789') {
output = 'false';
}
}
console.log(output);
def Duplicate_Numbers():
num_str=input('숫자를 입력하세요\n')
check_list=['0','1','2','3','4','5','6','7','8','9']
for k in check_list:
if num_str.count(k)!=1:
return False
return True
print(Duplicate_Numbers())
public class ArrayComparator {
public static void main(String[] args) {
int[] array1 = {0,1,2,3,4,5,6,7,8,9};
Scanner scanner = new Scanner(System.in);
System.out.print("숫자로된 문자열을 입력하세요 :");
String str = scanner.nextLine();
int arrayLength = str.length();
int[] array2 = new int[arrayLength];
for(int i = 0; i < arrayLength; i++) {
array2[i] = (int)str.charAt(i) - 48;
}
Arrays.sort(array2);
System.out.println(Arrays.equals(array1, array2));
}
}
import java.util.Arrays;
public class DupNumber {
public static void main(String[] args) {
String str1 = "012322456789"; // 0123456789 01234 01234567890 6789012345 012322456789
String str2 = "";
char[] strArr = str1.toCharArray();
Arrays.sort(strArr);
for (int i = 0; i < strArr.length; i++) {
str2 += strArr[i];
}
if(str2.equals("0123456789"))
System.out.println("true");
else
System.out.println("flase");
}
}
def countnum(setv):
splitlist = []
for args in str(setv):
splitlist.append(int(args))
for n in range(0, 10):
if splitlist.count(n) != 1:
return False
return True
Python 3
# isdigit
result = ["".join(sorted(x)) for x in input("sample inputs: ").split()]
print("sample outputs: ",end=" ")
for x in result:
print("true" if x=="0123456789" else "false",end=" ")
import java.util.Scanner;
public class Number{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("숫자를 입력하세요.");
long input=sc.nextLong();
int b,i,j,k,n,temp;
b=0;
temp=0;
int [] a = new int[500];
for(i=0;input!=0;i++){
a[i]=(int)(input%10);
input=(long)(input/10);
b=b+1;
}
for(j=0;j<=(b-1);j++){
for(k=0;k<=(b-1);k++){
if(a[j]==a[k] && j != k){
}
else{
temp=temp+1;
}
}
}
if(temp==100){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}
string = '0123456789 01234 01234567890 6789012345 012322456789'.split(' ')
for value in string:
if sorted(value) == list('0123456789'):
print('true')
else:
print('false')
Swift입니다. Set을 이용해서 입력된 값의 길이와 비교를 했고, 숫자만 입력이 된다고 가정했습니다.
import Foundation
if let input = readLine() {
let s = Set(input)
if input.count == s.count && s.count == 10 {
print("True")
} else {
print("False")
}
}
string= input()
tmp = string.split()
for i in tmp:
line = set(i)
if len(i) == len(line) and len(i) == 10:
print('true')
else:
print('false')
data = "0123456789 01234 01234567890 6789012345 012322456789"
for i in data.split():
print(len(i) != len(set(i)), end=" ")
func check(_ input: String) -> Bool {
var result = true
var reSumArray = Array(repeating: false, count: 10)
for char in tmp {
reSumArray[Int(String(char))!] = true
}
for detected in reSumArray {
if detected == false {
result = false
}
}
return result
}
Swift 입니다.
python 3.6
def main(x):
num = list(x)
if len(num) == 10:
for i in range(0, 10):
if str(i) in num:
num.remove(str(i))
if num is True:
print('false', end=' ')
else:
print('true', end=' ')
else:
print('false', end=' ')
n = input('sample inputs : ').split(' ')
for j in n:
main(j)
잘하고 싶어요 Python!! ^^;
import re
n = input("숫자를 입력하세요")
def chk(input_num):
number_list = [int(x) for x in list(n)]
number_list.sort()
number_join_text = ''.join(str(e) for e in number_list)
return bool(re.compile('^0123456789$').match(number_join_text))
print(chk(n))
정규식으로 해보았습니다
var regex = /^(?=\d*0)(?=\d*1)(?=\d*2)(?=\d*3)(?=\d*4)(?=\d*5)(?=\d*6)(?=\d*7)(?=\d*8)(?=\d*9)\d{10}$/;
regex.test("0123456789");
regex.test("01234");
regex.test("01234567890");
regex.test("6789012345");
regex.test("012322456789");
public static void isDupNumbers() throws IOException {
boolean isDupNum = false;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("0 ~ 9자리 숫자를 입력하세요. : ");
String iStr = br.readLine();
br.close();
char[] charArr = iStr.toCharArray();
for(int i = 0; i < charArr.length - 1; i++) {
for(int j = i + 1; j < charArr.length; j++) {
if(charArr[i] == charArr[j]) {
isDupNum = true;
break;
}
}
if(isDupNum) {
break;
}
}
System.out.printf("중복된 숫자가 존재? (true or false) : %b\n", isDupNum);
}
public static void duplicateNumber(){
System.out.print("입력 :");
Scanner scanner = new Scanner(System.in);
String number = scanner.nextLine();
String[] arr = number.split(" ");
String[] result = number.split(" "); ;
for(int i=0; i<arr.length; i++){
if(arr[i].length()==10){
char[] temp=null;
int[] num = new int[arr[i].length()];
for(int j=0; j<arr[i].length();j++){
num[j]=Integer.parseInt(Character.toString(arr[i].charAt(j)));
}
Arrays.sort(num);
for(int j=0; j<num.length;j++){
if(j!=num[j]){
result[i]="false";
break;
}
result[i]="true";
}
}else{
result[i] ="false";
}
}
for(int i=0; i< result.length;i++){
System.out.print(result[i]+" ");
}
System.out.println();
}
python3 입니다.
input = '9876543210'
result = []
for num in range(0, 10):
if input.count(str(num)) == 1:
result.append(True)
else:
result.append(False)
if all(result):
print(True)
else:
print(False)
input = input()
input_list = []
a = []
for i in range(10):
a.append(i)
def comparison(input,a):
for i in input:
input_list.append(i)
if input_list.count(i) >= 2:
return False
if len(input_list) != len(a):
return False
else:
for i in input_list:
for j in a:
if input_list.index(i) == a.index(j):
return True
return True
print(comparison(input,a))
파이썬 쌩초보라 이렇게밖에 안되네요..
package algorithm;
import java.util.Scanner;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] num = {0,1,2,3,4,5,6,7,8,9}; // 0 에서 9까지
int[] count = {0,0,0,0,0,0,0,0,0,0}; // 각각의 카운트
String s;
boolean result = false;
System.out.println("입력하시오: ");
s = sc.next();
// 0~9까지 각각 한번씩 들어가면 길이가 10이기 때문
if (s.length() == 10) { // 문자열의 길이가 10이면
int temp;
int flag=1; // 플래그 변수
for (int i = 0; i < s.length(); i++) {
// 문자열 s에서 문자를 추출해서 숫자로 변환
temp = Character.getNumericValue(s.charAt(i));
for(int j=0;j<num.length;j++){
if(temp==num[j]){
count[temp]++;
// 같은 숫자가 두 번나오면 flag를 0으로 바꾸고 반복문 탈출
if(count[temp]==2){
flag=0;
break;
}
}
}
if(flag==0)
break;
}
if(flag==1)
result=true;
else
result=false;
}
else // 길이가 10이 아니면 애초에 result를 false로
result = false;
System.out.println(result);
}
}
a = input("Enter the string of numbers: ", )
def DuplicateNumbers(a):
list = []
determ=[]
l = len(a)
for i in range(0,l):
source = int(a[i])
list.append(source)
for j in range(0,10):
if list.count(j) == 1:
determ.append(0)
else:
determ.append(1)
if sum(determ) == 0:
return print('true')
else:
return print('false')
DuplicateNumbers(a)
파이썬
a=list(input("0~9의 숫자를 입력하세여")) if len(sorted(set(a)))==10 : print("true") else : print("false")
def check(sample):
checklist=[]
for i in sample:
if not i in checklist:
checklist.append(i)
else :
return False
break
return True
sample = "012322456789"
print (check(sample))
c언어입니다. 학교 과제용으로 풀었습니다..만 공유합니다.
#include <stdio.h>
int main() {
char MunNumber[12] = {0};
//11개 이상의 숫자가 입력된 경우 무조건 false, null문자까지 배열공간12
int NumChack[10] = {0};
char boolChack = 1;
printf("숫자를 0부터 9까지 하나씩 입력하세요. : ");
scanf("%s", MunNumber);
for(char i = 0; i <= 10 ; i++) {
for(char j = 0; j <= 10 ; j++) {
if(MunNumber[j] - 48 == i) NumChack[i] += 1;
//ASCII코드의 0~9값이 48~57이기 때문에 -48 해서 값을 숫자로 변환
//입력값중 i와 같은 값이 있을경우, NumChack[i]에 1을 더하기.
}
}
for(char i = 0; i <= 9 ; i++) {
if(NumChack[i] != 1) boolChack = 0;
//NumChack[]의 값 중 1이 아닌 값이 있을 경우 false
//(boolChack는 1로 초기화되어있음)
}
if(boolChack == 1) printf("true");
else printf("false");
return 0;
}
check=''
num=input('입력하시오: ')
if num.isdigit():
for i in range(10):
check+=str(num.count(str(i)))
print (st.count('1')==10)
// 자바입니다
public static void main(String[] args) throws Exception {
String str = " 0123456789 01234 01234567890 6789012345 012322456789";
String[] nums = str.trim().split(" ");
for (int i=0; i<nums.length; i++) {
int[] numbers = new int[10];
for (int j=0; j<nums[i].length(); j++) {
numbers[nums[i].charAt(j)-48]++;
}
boolean flag = true;
for (int j=0; j<10; j++) {
if (numbers[j] != 1)
flag = false;
}
if (flag)
System.out.println(true);
else
System.out.println(false);
}
} // 배열에 해당하는 인덱스번째 ++ 시키고 다 1이여야만 트루를 출력하게했어요
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
char[] c = str.toCharArray();
for (char ch : c) {
if (!((ch >= 48 && ch <= 57) || ch == 32)) {
throw new Exception("format error");
}
}
String[] str2 = str.split(" ");
for (int i = 0; i < str2.length; i++) {
boolean test = true;
char[] ccc = str2[i].toCharArray();
for (int j = 1; j < ccc.length; j++) {
if (ccc[j-1] == ccc[j]) {
test = false;
break;
}
}
System.out.print(test + " ");
}
}
def duplicate(text):
judge = "0123456789"
if len(judge) == len(text):
for i in range(len(judge)):
if judge[i] not in text:
return ("false")
return ("true")
else:
return ("false")
text = input()
print(duplicate(text))
function checkNum(n){
let changeIntoString = String(n).split('').sort((a,b) => a > b ? 1: -1).join("");
let changeIntoNum = Number(changeIntoString)
if(changeIntoNum === 0123456789) {
console.log("true");
} else{
console.log("false");
}
}
public class Duplicate_Numbers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("0 ~ 9의 문자를 사용하여 입력해주세요: ");
String[] in = sc.next().split("");
ArrayList<String> temp = new ArrayList<String>(Arrays.asList(in));
int sum = 0;
Collections.sort(temp);
for (int i = 0; i < temp.size()-1; i++) {
if (temp.get(i).equals(temp.get(i+1))) {
sum++;
break;
}
}
if (sum > 0 || temp.size() != 10) {
System.out.println("false");
} else {
System.out.println("true");
}
}
}
저도 한줄 짜리!
list1 = '0123456789 01234 01234567890 6789012345 012322456789'.split()
def is_not_duplicate(str1):
return set(str1) == set("0123456789") and len(str1) == 10
for l in list1:
print(is_not_duplicate(l))
def duplicate_numbers():
number_list = input("0에서 9까지 숫자를 하나씩 이어서 입력해주세요")
number_list = set(number_list)
if len(number_list) != 10:
print("0~9까지 숫자가 한 번씩 사용되지 않았습니다.")
else:
print("제대로 입력됐습니다")
Python
test = ["0123456789", "01234", "01234567890", "6789012345", "012322456789"] #test = input().split(' ')
for t in test:
output = [0]*10
for c in str(t):
output[int(c)] += 1
for k in output:
if k != 1:
print("false")
break
else:
print("true")
#Another version
print(*[x=='0123456789' for x in [''.join(sorted(t)) for t in test]])
public class Duplicate_Numbers {
boolean check(String input) {
boolean result;
if(input.length() != 10) {
result = false;
} else {
result = input.chars().distinct().count() != input.length() ? false : true;
}
return result;
}
public static void main(String[] args) {
Duplicate_Numbers test = new Duplicate_Numbers();
System.out.println(test.check("0123456789"));
System.out.println(test.check("01234"));
System.out.println(test.check("01234567890"));
System.out.println(test.check("6789012345"));
System.out.println(test.check("012322456789"));
}
}
input_num = input("숫자를 입력해 주세요")
if len(input_num) == len(set(input_num)) == 10:
print("true")
else:
print("false")
def is_duplicated(NumString):
result = ''
for element in NumString.split():
if len(set(element)) < 10 or len(element) != 10: result += 'false '
else: result += 'true '
return result.rstrip()
def check(s_input):
if len(s_input) == 10: # 문자의 갯수가 10개보다 많다면 false 이다
cnt_arr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # 숫자의 갯수를 담기 위한 리스트
for letter in s_input:
cnt_arr[int(letter)] += 1 # 각각의 숫자에 해당하는 index에 갯수 늘려주기
for index in range(0, 10):
if cnt_arr[index] != 1: # 갯수가 1개보다 많으면 false
return False
return True # 그 외에는 true
else:
return False
s_input = input("0~9 까지의 숫자를 입력하세요")
if check(s_input):
print("true!")
else:
print("false!")
x = input("원하는 숫자를 입력하세요... ")
show_up = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(10):
if str(i) in str(x):
n = x.count(str(i))
show_up[i] += n
print(show_up)
if show_up[0] == 1 and show_up[1] == 1 and show_up[2] == 1 and show_up[3] == 1 and show_up[4] == 1 and show_up[5] == 1 and show_up[6] == 1 and show_up[7] == 1 and show_up[8] == 1 and show_up[9] == 1: print("True")
else: print("False")
public static void isOnlyOnceUsed() throws IOException {
System.out.print("0 ~ 9자리 숫자를 입력하세요. : ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String iStr = br.readLine();
br.close();
Stack<String> numStack = new Stack<String>();
for(int i = 0; i < 10; i++) {
numStack.push(String.valueOf(i));
}
boolean isOnlyOnceUsed = true;
int initStackSize = numStack.size();
int cnt = 0;
while(true) {
String num = numStack.peek();
cnt++;
if(iStr.contains(num) && cnt <= initStackSize) {
numStack.pop();
iStr = iStr.replaceFirst(num, "");
if(numStack.size() == 0) break;
} else {
isOnlyOnceUsed = false;
break;
}
}
if(iStr.length() != 0) isOnlyOnceUsed = false;
System.out.printf("0123456789 숫자가 각각 최소 한번씩 사용되었는가? (true or false) : %b\n", isOnlyOnceUsed);
}
같은 숫자가 입력되는지 확인하고, 모든 숫자를 더해서 45이면 true 아니면 false 를 출력합니다.
import java.util.Scanner;
public class DuplicateNumber {
public static int SUM = 45;
public static void main(String[] args) {
boolean[] check = new boolean[10];
Scanner sc = new Scanner(System.in);
System.out.print("입력하세요: ");
String input = sc.nextLine();
sc.close();
char[] nums = input.toCharArray();
int sum = 0;
for(char c : nums) {
int number = Character.getNumericValue(c);
if(check[number]) {
sum = 0;
break;
}
check[number] = true;
sum += number;
}
System.out.println(sum == SUM);
}
}
input_num = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
def ox(numline):
return len(numline) == 10 and len(set([i for i in numline])) == len(numline)
print([ox(i) for i in input_num])
import java.io.;
public class Shakkur {
public static void main(String[] args) {
List<Integer> standlist=new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
standlist.sort(null);
List<Integer> numlist=new ArrayList<Integer>();
System.out.println(숫자 행을 입력하세요.);
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
String[] split_str=str.split( );
for(int i=0;isplit_str.length;i++) {
String[] strArr=split_str[i].split((!^));
for(int k=0;kstrArr.length;k++) {
numlist.add(Integer.parseInt(strArr[k]));
}
numlist.sort(null);
if(numlist.equals(standlist)) {
System.out.print(성공 +numlist);
}else {
System.out.print(실패 +numlist);
}
}
}
}
n=input('input number')
n_list=[int(i) for i in n]
alist=list(range(10))
if set(n_list) == set(alist) and len(n_list)==len(alist):
print('true')
else:
print('false')
Python으로 작성
def check_duplicate(input): table = [0,0,0,0,0,0,0,0,0,0] str_input = str(input) length = len(str(input))
for i in range(0,length):
table[int(str_input[i])] +=1
print(table)
for k in table:
#print(k)
if k==1:
pass
else:
return False
return True
import java.util.Arrays;
public class DuplicateNumbers {
public static void main(String[] args) {
String[] inputs = { "0123456789", "01234", "01234567890", "6789012345", "012322456789" };
for (int i = 0; i < inputs.length; i++)
System.out.println(Check(inputs[i]));
}
private static Boolean Check(String str) {
String temp = "0123456789";
String[] str1 = str.split("");
Arrays.sort(str1);
return String.join("", str1).equals(temp);
}
}
파이썬입니다.
def dupnum(string):
mystr=''.join(sorted(list(string)))
if mystr=='0123456789':
print('true')
else:
print('false')
dupnum(input())
package com.company;
public class checkNum {
String number;
int[] num = new int[10];
public checkNum(String number) //생성자
{
this.number = number;
}
public boolean isTrue() {
if (this.number.length() != 10) {
return false;
}
else {
for (int i = 0; i < num.length; i++) {
int k = number.charAt(i);
num[k-48]++;
}
for(int j: num){
if(j != 1)
{
return false;
}
}
return true;
}
}
}
//////////////////////////////////////////////////////////////////
public class Main {
public static void main(String[] args) {
checkNum is = new checkNum("1234098765");
System.out.println(is.isTrue());
}
}
파이썬 3
input = "0123456789 01234 01234567890 6789012345 012322456789"
input_list = input.split(" ")
result_list = []
for i in input_list:
result_list.append(True if len(i) == 10 and len(set(i)) == 10 else False)
print(result_list)
결과
[True, False, False, True, False]
파이썬입니다.
def function(number):
for n in number:
if number.count(n) != 1 or len(number) != 10 : return False
return True
print(" ".join([str(function(numbers)) for numbers in input().split()]))
def duplicate(number):
for num in range(10):
if number.find(str(num))==-1 or number.count(str(num))>1: return print('False')
return print('True')
C언어
#include<stdio.h>
#include<string.h>
int main()
{
char num[20];
char tmp[20] = {0, };
int i,cnt=0 ,j = 0;
int c[10]={0, };
printf("Duplicate Numbers\n0~9까지의 문자로된 숫자를 입력받을때 이 입력값이 0~ 9까지의 숫자가 각각 한번씩만 사용된것인지를 확인함 :");
scanf("%s", num);
for(i=0; i<strlen(num); i++)
{
for(j=0; j<10; j++)
{
if(num[i]=='0'+j)
{
c[j]++;
}
}
}
for(i=0; i<10; i++)
{
if(c[i] != 1)
{
printf("false");
return 0;
}
}
printf("true\n");
return 0;
}
data = list(map(str, input().split()))
for r in list(map(lambda x: 'true' if len(set(x)) == 10 and len(list(x)) == len(set(x)) else 'false', data)):
print(r)
class Program
{
static void Main(string[] args)
{
bool bOk = true;
string strInput = Console.ReadLine();
if (strInput.Length != 10)
{
Console.WriteLine("0 ~ 9까지의 문자로 된 숫자를 입력하세요!");
return;
}
char[] digits = strInput.ToCharArray();
for (int k = 0; k < digits.Length - 1; k++)
{
for (int m = k; m < digits.Length - 1; m++)
{
if (digits[k] == digits[m+1])
{
bOk = false;
break;
}
}
if (!bOk)
break;
}
Console.WriteLine(bOk.ToString());
}
}
파이썬 입니다.
def once(a):
b = list(a)
c = set(a)
if len(b) != 10:
print('false')
elif len(b) == len(c):
print('true')
else:
print('false')
def duplicate(n):
check = str(n)
for i in range(0,len(check)-1):
for k in range(i+1, len(check)):
if(check[i] == check[k]):
return True
return False
n = int(input("숫자입력:"))
print(duplicate(n))
test = input("put string")
lst_test = list(test)
def only1(lst):
sett = set(lst)
if len(sett) == len(lst):
return 1
else:
return 0
print(only1(lst_test))
저는 python을 사용하였습니다. 집합과 리스트의 길이를 비교시, 길이가 같다면 리스트엔 중복된 요소가 없는 것이고 그 반대의 경우도 마찬가지 입니다. 물론, 문제가 특수해서 이렇게 짧게 쓸 수 있는거지 더 꼬아주면 탐색하는 방법을 생각해 보아야 할 것 같네요^^
num = input('숫자를 입력하세요: ', 's');
if length(num) == 10 & length(unique(num)) == 10
disp('true')
else
disp('false')
end
a=input().split()
for i in a:
for x in range(10):
if i.count(str(x))!=1:
print('false')
break
elif x==9:
print('true')
Python으로 코딩해봤습니다.
a = input('숫자 입력: ')
temp = 1 #진위 여부
n = 0 #기준이 되는 숫자
while n < 10:
if a.count(str(n)) != 1:
temp = 0
break
n += 1
if temp == 1:
print('True')
else:
print('False')
x = input()
y = sorted(list(x))
if y == ['0','1','2','3','4','5','6','7','8','9']:
print("TRUE")
else:
print("FALSE")
# 사용자로부터 입력을 받는다.
num = input("Enter is your number : ")
# 중복되는 숫자가 있는지 확인하는 함수
def check_du(num):
dic = {}
# 입력받은 숫자의 길이만큼 반복문을 돌린다.
for i in range(len(num)):
# num의 i 번째 값을 Dict의 키 값으로 Setting하고 value값은 1로 넣는다.
dic[num[i]] = 1
# dic의 키 값들의 길이와 입력받은 값의 길이가 같지 않다면 False를 리턴
if len(dic.keys()) != 10:
return False
# if에 해당하지 않는다면 True를 리턴
return True
# 사용자로부터 입력받은 숫자를 중복체크를 하는 함수로 보낸다.
for num1 in num.split():
print(check_du(num1))
하.. 너무 부족하네요
a="120435678"
result =""
if len(a) != 10 :
result= "false"
else :
for i in range (0, 10) :
a=a.replace(str(i),"")
if len(a)==0:
result= "true"
else :
result = "false"
print(result)
sample = input('sample inputs: ')
num = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
sam_list = sample.split( )
TF_list = []
def check_num(Test_list):
i = 0
while i < 10:
if len(Test_list) == 10:
if str(i) in Test_list: #0~9가 있는지 확인
i += 1
else:
TF_list.append('False')
break
else:
TF_list.append('False')
break
if i == 10:
TF_list.append('True')
for i in sam_list:
Test_list = list(i)
check_num(Test_list)
print("sample outputs: %s" %TF_list)
Python으로 작성 했습니다. 좀더 간단한 방법이 있으면 조언 부탁 드립니다.
num = [int(x) for x in input()]
for i in range(10):
if num.count(i) != 1:
print('false')
break;
else:
print('true')
input_num = input('Enter Number: ')
def dupli_check(num):
if len(num) > len(set(num)): #중복제거하는 set()함수를 사용
return False
else:
return True
b = dupli_check(input_num)
print(b)
num = input("숫자입력")
alist=[]
count = 0
for i in range(0,len(num),1):
alist.append(num[i])
for i in alist:
if num.count(i)>= 2:
count+=1
break
else :
continue
if count >= 2 :
print("false")
else:
print("true")
num_str=str(input("숫자를 입력하시오:"))
num_list=['0','1','2','3','4','5','6','7','8','9']
for x in num_str:
num_list.remove(x)
if num_list==[]:
print("true")
else:
print("false")
numbers = input("숫자를 입력하세요. : ")
listed_numbers = list(numbers)
listed_numbers.sort()
truefalse = "true"
for n in range(0, 10):
if listed_numbers.count(str(n)) != 1:
truefalse = "false"
print(truefalse)
library(stringr)
z <- readline()
i <- c(0:9)
if (str_count(as.character(z), as.character(i)) == 1){
TRUE
} else {
FALSE
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
char charac[10];
int i,k,m,count=0;
char j;
printf("input : ");
scanf("%s",charac);
for(j='0';j<'9'+1;j++){
for(k=0;k<sizeof(charac);k++){
if(charac[k]=='\0')
break;
if(charac[k]==j){
count+=1;
for(m=k+1;m<sizeof(charac);m++){
if(charac[m]==j){
printf("false");
return 0;
}
}
}
}
}
if(count==10)
printf("ture");
else
printf("false");
return 0;
}
생각하기 귀찬아서 3중으로돌렸어여 ㅋㅋㅋ
#include <stdio.h>
#include <stdlib.h>
int main()
{
char charac[10];
int i,k,m,count=0;
char j;
printf("input : ");
scanf("%s",charac);
for(j='0';j<'9'+1;j++){
for(k=0;k<sizeof(charac);k++){
if(charac[k]=='\0')
break;
if(charac[k]==j){
count+=1;
for(m=k+1;m<sizeof(charac);m++){
if(charac[m]==j){
printf("false");
return 0;
}
}
}
}
}
if(count==10)
printf("ture");
else
printf("false");
return 0;
}
생각하기 귀찬아서 3중으로돌렸어여 ㅋㅋㅋ
python 3.7
nums=input('inputs: ').split()
for n in nums:
if set(n)==set([str(n) for n in range(10)]) and len(n)==10:
print(True,end=' ')
else:
print(False,end=' ')
python 3.7
def dup(n):
if set(n)==set([str(n) for n in range(10)]) and len(n)==10:
return True
else:
return False
nums=input('inputs: ').split()
for n in nums:
print(dup(n),end=' ')
# python 3.7.1
lm = lambda test_str: all(str(test) in test_str if test_str.count(str(test)) == 1 else False for test in range(10))
print(list(map(lm, "0123456789 01234 01234567890 6789012345 012322456789".split())))
def checkNum(num):
for i in range(10):
if str(i) in num:
if len(num) == 10:
return True
else:
return False
public static void main(String[] args) {
System.out.print("숫자열을 입력하세요. : ");
Scanner input = new Scanner(System.in);
String[] inputNum = input.next().split("");
//문자열 비교
String[] number = {"0","1","2","3","4","5","6","7","8","9"};
boolean flag=true;
//입력받은 숫자열의 각 자리가 0~9 비교
for(int i=0;i<10;i++) {
int num=0;
for(int j=0;j<inputNum.length;j++) {
//같으면 num에 1을 더함.
if(inputNum[j].equals(number[i])) {
num+=1;
//0이 2번 나오면 num=2 ->flase
if(num>=2) {
flag=false;
break;
}
}
}
}
System.out.println(flag);
}
import java.util.Scanner;
public class KimSanghyeop
{
public static void main(String[] args)
{
Scanner sc =new Scanner(System.in);
System.out.print("숫자를 입력하세요 : ");
String str = sc.nextLine();
char[] arr = str.toCharArray();
int[] cnt = {0,0,0,0,0,0,0,0,0,0};
boolean ok = true;
int f1;
for(f1=0;f1<arr.length;f1++)
{
cnt[arr[f1]-'0']+=1;
if(cnt[arr[f1]-'0'] > 1)
{
ok = false;
break;
}
}
if(ok)
{
System.out.println("한번만 사용");
}
else
{
System.out.println("여러번 사용");
}
}
}
Java 8
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class tut05 {
public static void main(String[] args) {
System.out.println("hello world");
// 입력값
String input = "6789012345";
// 고정 기준값을 만든다.
final List<String> concreateList = IntStream.rangeClosed(0, 9).mapToObj(i -> i + "")
.collect(Collectors.toList());
// 입력값을 List<String> 으로 저장.
List<String> list = input.chars().mapToObj(i -> String.valueOf(i-'0'))
.collect(Collectors.toList());
// 입력값 정렬.
Collections.sort(list);
// 비교.
System.out.println(concreateList.equals(list));
}
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void func(char[], int);
void main()
{
int length;
char snum[11];
while (1)
{
scanf("%s", snum);
length = strlen(snum);
func(snum, length);
}
}
void func(char num[], int length)
{
int check[10] = { 0 };
int checker = 1;
for (int i = 0; i < length; i++)
{
for (int j = 0; j < 10; j++)
{
if (num[i] - 48 == j)
{
check[j]++;
}
}
}
for (int i = 0; i < 10; i++)
{
if (check[i] != 1)
{
checker = 0;
}
}
if (checker == 1)
printf("true ");
else
printf("false ");
}
def dupli():
a = input('number')
lista = list(a)
result = 'true'
for i in range(len(lista)):
for j in range(i+1,len(lista)):
if lista[i]==lista[j]:
result = 'false'
return result
def test_numbers(a_string):
total = 0
zero_count = a_string.count('0')
for ch in a_string:
total += int(ch)
return True if total is 45 and zero_count is 1 else False
if __name__ == '__main__':
numbers = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
for number in numbers:
print test_numbers(number)
# duplicate_numbers.py
str = input("Enter inputs : ")
std_set = set(range(0,10))
str_set = set(int(n) for n in str)
if str_set == std_set and len(str) == 10:
print(True)
else:
print(False)
namespace codingdojang__
{
class Program
{
static void Main(string[] args)
{
List<int> ex_list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
List<int> ex_list2 = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
bool input_array_bool = true;
string[] temp_input_array = Console.ReadLine().Split(',');
List<int> input_list = new List<int> { };
foreach (var i in temp_input_array)
{
string e = i.Trim();
input_list.Add(int.Parse(i));
}
input_list.Sort();
for (int i = 0; i <= 9; i++)
{
if (input_list[i] == ex_list[i])
{
continue;
}
else if(input_list[i] == ex_list2[i])
{
continue;
}
else
{
input_array_bool = false;
break;
}
}
Console.WriteLine(input_array_bool);
}
}
}
#include <stdio.h>
#include <string.h>
int main(void){
char str[10];
char temp;
int cnt = 0;
printf("숫자 입력 : ");
gets(str);
for(int i = 0; i < strlen(str) ; i++){
for(int j = 0 ; j < strlen(str); j++){
if(str[i] < str[j]){
temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}
}
if(strcmp(str,"0123456789") == 0)
printf("true");
else
printf("fasle");
return 0;
}
def is_ture(number):
list_number = list(str(number))
set_number = set(list_number))
for i in list(map(int, list_number)):
if not set_number.count(i): return False
return True
num_str = input()
def sorting(num):
if len(num) == 10 and len(set(num)) == 10:
return 'True'
else:
return 'False'
print(sorting(num_str))
num = input('0 ~ 9로 이루어진 숫자를 입력하세요: ')
list = []
compare_list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
for i in range(len(num)):
list.append(num[i])
list.sort()
if list == compare_list:
print('true')
else:
print('false')
def num() :
cache= '0123456789'
nums = input('숫자를 입력해주세요:')
stack = 0
stack2 = 0
for i in cache :
for j in range(len(nums)):
if nums[j] == i :
stack += 1
if stack != 1 :
stack = 0
pass
else :
stack2 += 1
stack = 0
pass
if stack2 == 10 :
print('True')
else :
print('False')
num()
def only_string(string):
num_set = set(string) #중복제거
if len(string)==len(num_set)==10:
return 'true'
else:
return 'false'
input_string=='102839604 22234265 34757"
for i in input_string.split(" "):
print (only_string(i), end=' ')
c++로 작성하였습니다~
#include <iostream>
#include <iterator>
#include <list>
int main() {
list<char> a={'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
stirng num;
cout<<"숫자를 입력하세요: ";
getline(cin, num);
for(int i=0;i<num.size();i++)
if(num[i]>='0' && num[i]<='9')
a.remove(num[i]);
if(a.size()==0 && num.length()==10)
cout<<"true";
else
cout<<"false";
return 0;
}
function zeroToNine(int){
const arr = int.split('')
const memory = []
for(let i =0; i<arr.length; i++){
memory.push(String(arr[i]))
}
const result = memory.sort((x,y)=>x-y)
if(result.join('') === '0123456789'){
return true
}else{
return false
}
}
zeroToNine('012322456789')
r_input = input().split()
def inputInit(cList):
for i in range(10):
cList[i] = 0
def DuplicateNumbers(lList):
# Initialize check input list
check_value = list()
for i in range(len(lList)):
check_value.append(True)
check_input = list()
for i in range(10):
check_input.append(0)
# Checking duplicate number
for i in range(len(lList)):
for j in range(len(lList[i])):
check_input[int(lList[i][j])] += 1
# Finally check duplicate number(T or F)
for k in range(len(check_input)):
print(check_input[k])
if check_input[k] != 1:
check_value[i] = False
inputInit(check_input)
print(check_value)
DuplicateNumbers(r_input)
#0~9까지의 수가 각각 한번만 사용된 것인가?
num=input('수 입력:')
count=0
for i in range(0,10):
st=str(i)
if num.count(st)>=2: #각 숫자가 2개 이상들었는가?
count+=1
if count==0:
print('yes')
else:
print('no')
def du(number):
for i in range(10):
if number.count(str(i)):
pass
else:
return False
break
return True
python
def duplicate_numbers(s):
result = []
for n in s:
if n not in result:
result.append(n)
else:
return False
return len(result)
print(duplicate_numbers('1234567890'))
def checker(s):
body = s.split()
answer = list(len(body[i]) == len(set(body[i])) and len(body[i]) == 10 for i in range(len(body)))
print(answer)
checker("0123456789 01234 01234567890 6789012345 012322456789")
파이썬 코드입니다~
R로 작성하였습니다
function1 = function(input){
input = strsplit(input, "")[[1]]; input
logic = TRUE
char = c()
for(i in 0:9){
char = append(char, as.character(i))
}
for(i in 1:length(char)){
if(sum(input %in% char[i]) != 1){
logic = FALSE; print(char[i])
break
}
}
return(logic)
}
def check(string) :
if len(string) > len(set(string)) :
return False
else :
return True
# ex) print(check('12333'))
파이썬입니다 set을 활용해봤습니다
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.nextLine();
String[] arr = num.split(" ");
for (int i = 0; i < arr.length; i++) {
System.out.print(isUsedOnce(arr[i]) + " ");
}
sc.close();
}
public static boolean isUsedOnce(String num) {
int[] arr = new int[10];
for (int i = 0; i < 10; i++) {
arr[i] = 0;
}
Character c;
String tmp;
for (int i = 0; i < num.length(); i++) {
c = Character.valueOf(num.charAt(i));
tmp = c.toString();
arr[Integer.parseInt(tmp)] += 1;
}
for (int i = 0; i < 10; i++) {
if (arr[i] != 1) return false;
}
return true;
}
실력이 미천해서 이렇게밖에 못하겠네요
index_check = [1,1,1,1,1,1,1,1,1,1]
sample_input = input()
for i in (sample_input) :
if (index_check[int(i)] == 1) :
index_check[int(i)] = 0
else :
print("false")
exit()
for i in range (len(index_check)) :
if (index_check[i] == 1) :
print("false")
exit()
print("true")
user_input = input("숫자를 입력해주세요(공백으로 구분) : ").split()
check_number_count = 0
for number in user_input:
a = number
for number2 in range(0, 10):
count = a.count(str(number2))
if count != 1:
check_number_count += 0
else: check_number_count += 1
if check_number_count != 10:
print("False",end=" ")
check_number_count = 0
else: print("True", end=" ")
static void Main(string[] args)
{
Console.WriteLine("*** 코딩도장 Q93 ***");
Console.Write("검증할 값을 입력하세요 : ");
String userInput = Console.ReadLine();
Console.WriteLine("입력한 값은 {0} 입니다.", userInput);
char[] tmp = new char[userInput.Length];
string ans = "0123456789";
for (int i = 0; i < userInput.Length; i++)
{
tmp[i] = userInput[i];
}
Array.Sort(tmp);
string cmp = new string(tmp);
if (cmp==ans)
{
Console.WriteLine("입력하신 {0} 은/는 조건에 적합한 수 입니다.", userInput);
}
else
{
Console.WriteLine("입력하신 {0} 은/는 조건에 적합하지 않는 수입니다.", userInput);
}
}
def check(num):
for i in range(10):
check_num = num.count(str(i))
if check_num >1 or check_num==0:
return 'false'
return 'true'
num_list = input("입력: ").split(' ')
# Testcase
# 0123456789 01234 01234567890 6789012345 012322456789
for i in num_list:
print(check(i),end=' ')
var input = '0123456789 01234 01234567890 6789012345 012322456789';
var list = input.split(' ');
for (var i = 0; i < list.length; i++) {
var arr = new Array(10);
arr.fill(0);
for (var j = 0; j < list[i].length; j++) {
arr[list[i][j]]++;
}
var filter = arr.map(function (a, b) {
return !(a > 1 || a == 0)
});
console.log(filter.indexOf(false) === -1);
}
list = "0123456789 01234 01234567890 6789012345 012322456789 ".split()
list1 = "0123456789"
def Duplicate(str):
if len(str) == len(set(list1)):
return True
else:
return False
for i in list:
print(Duplicate(i))
def isDuplicate(str):
sum_n = 0
if len(str) == 10:
for i in str:
sum_n += int(i)
if sum_n == 45:
return True
else:
return False
while True:
num=input("input number: ")
result="True"
setall={'0','1','2','3','4','5','6','7','8','9'}
if set(num)!=setall:
result="False"
elif sorted(list(set(num)))!=sorted(list(num)):
result="False"
print(result)
ref = '0123456789'
numbers = list(input("Numbers: "))
numbers.sort()
str_numbers = result = ''.join(numbers)
if str_numbers == ref:
print(True)
else:
print(False)
answer=['0','1','2','3','4','5','6','7','8','9']
a=list(input("숫자열을 입력하시오"))
print(a)
a.sort()
print(a)
if answer==a:
print("훌륭합니다!")
else:
print("아닙니다!")
package level1;
import java.util.Scanner;
public class duple {
// sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
// sample outputs: true false false true false
public static void main(String[] args) {
String msg = "";
String temp = "";
boolean yn = true;
Scanner scan = new Scanner(System.in);
System.out.println("메시지 입력");
msg = scan.nextLine();
for(int i=0; i < msg.length()-1; i++){
temp += msg.charAt(i);
if(temp.indexOf(msg.charAt(i+1)) != -1){
yn = false;
}
}
System.out.println("yn - "+ yn);
}
}
n=input('enter number :') t=','.join(n) s=t.split(',') l=sorted(s) d='' for i in l: d=d+i
a='0123456789'
if d==a: print('True') else: print('False')
in_data = "0123456789 01234 01234567890 6789012345 012322456789" print('in_data:', in_data)
list_data = in_data.split(' ') print('list_data:', list_data)
print(type(in_data)) print(len(in_data))
def check(string) : if len(string) == len(set(string)) == 10: return 'true' else : return 'false'
for x in list_data: print(check(x), end =' ')
import java.util.Scanner;
import java.util.StringTokenizer;
public class DuplicateNumbers {
public static void main(String[] args){
String num;
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하시오 >");
num = sc.next();
check(num);
}
private static void check(String num){
int[] count = new int[10];
byte[] a = num.getBytes();
for(int i = 0; i < a.length; i++){
count[a[i] - 48]++;//아스키코드로 '0'은 48.
if(count[a[i] - 48] > 1){
System.out.println("false");
return;
}
}
System.out.println("ture");
}
}
L = set("0123456789")
def DN(a):
a = set(a)
if len(a) != 10:
return False
else:
if len(a - L) == 0:
return True
else:
return False
import random
Sample_inputs = []
for i in range(4):
Sample = ""
for j in range(10):
input = str(random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]))
Sample += input
Sample_inputs.append(Sample)
print(Sample_inputs)
def Duplicate_check(att):
if len(att) == len(set(att)):
return 'true'
else:
return 'false'
for att in Sample_inputs:
Result = Duplicate_check(att)
if Result == 'false':
print(Result, end = ' ')
else:
print(Result, end = ' ')
다른 방법도 생각 해 봤는데 거의 다 중복인 것 같네요... 예전에 풀었던 풀이를 올려 봅니다
#duplicate_numbers.py
numbers=input().split()
counter=[0,0,0,0,0,0,0,0,0,0]
for number in numbers:
for i in number:
counter[int(i)]+=1
if counter == [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]:
print(True)
else:
print(False)
counter = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
문자열의 길이가 10이 아니면 우선 false인 걸 걸러 내줘야해요 그다음 카운팅해줍니다. 보통 비교정렬을 쓰면 O(nlogn) 이고 카운팅은 O(n)이라서 카운팅을 쓰는게 맞지만 앞에서 말헀다시피 길이가 10이므로 큰 차이가 없어서 취향대로 푸시면 될 듯하네요
#include <iostream>
using namespace std;
int main()
{
string str;
bool isRight;
do{
cin >> str;
if(str == "Q")
break;
if(str.length() != 10){
cout << "false"<< endl;
continue;
}
int cnt[10] = {0, };
for (int i = 0; i < str.length(); i++) {
cnt[int(str[i] - '0')]++;
}
isRight = true;
for(int i = 0 ; i < 9 ; i++)
{
if(cnt[i] != 1)
{
isRight = false;
break;
}
}
if(isRight)
cout << "true" << endl;
else
cout << "false" <<endl;
}while(true);
return 0;
}
python3.6
inputs_list = input('inputs: ').split(' ')
for sample in inputs_list:
print(bool(len(sample) == 10 and len(set(sample)) == 10), end=' ')
data = input()
data = list(data)
result = []
for i in range(10):
if data.count(str(i)):
result.append(True)
if len(data) == 10:
print(all(result))
else:
print(False)
num = input("number: ")
Lnum = list(num)
print(Lnum)
Snum = sorted(Lnum)
print(Snum)
STRnum = ''.join(Snum)
print(STRnum)
if STRnum == "0123456789":
print("True")
else :
print("False")
입력한 숫자를 리스트로 바꾸고. 리스트를 정렬하고. 정렬한 리스트를 문자열로 바꾸고. 012345678과 비교시켰습니다.
아직 아는 것이 별로 없어서 아는 기능을 이용해 차근차근해봤습니다.
# Duplicate Numbers
def duplicate(n):
result = []
for i in n:
if i not in result:
result.append(i)
else:
return False
return len(result) == 10
print(duplicate('0123456789'))
print(duplicate('01234'))
print(duplicate('01234567890'))
import java.util.HashSet;
import java.util.Scanner;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] inputs = scan.nextLine().split(" ");
for(String val: inputs) {
System.out.print(isTrue(val) + " ");
}
scan.close();
}
private static boolean isTrue(String val) {
HashSet<Character> set = new HashSet<Character>();
for(int i=0; i<val.length(); i++) {
set.add(val.charAt(i));
}
return set.size()==10 && val.length()==10;
}
}
while True:
a = input("입력: ")
print(a)
res1=0; #한번씩 사용되었는가?
res2=0; #0~9모든 숫자 사용되었는가?
b=[]
for i in a:
for t in b:
if(i == t):
res1 = 1;
b.append(i)
for t in b:
t = int(t)
if( t == 1 or t==2 or t==3 or t==4 or t==5 or t==6 or t==7 or t==8 or t==9 or t==0):
res2=res2+1
if(1 == res1):
print('false',res1,res2)
else:
if(10 == res2):
print('true',res1,res2)
else:
print('false',res1,res2)
만들고 다른 분들 풀이랑 비교하니 코딩 초짜 느낌이 너무 강하게 나네요... 분발해야겠어요
num = input('Plz enter the Series of number')
tmpt = 0
N_Used = []
count = 0
Count = 0
for i in range(len(num)):
tmpt = num.count(num[i])
if (tmpt == 1):
N_Used = N_Used + [num[i]]
if (tmpt != 1): count = count + 1
if (N_Used == []): pass
else:
for j in ['0','1','2','3','4','5','6','7','8','9']:
if j in N_Used : pass
else : Count = Count + 1
if (Count == 0):
if count == 0: print('True')
else: print('False')
else: print('False')
''' 0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오. sample inputs: 0123456789 01234 01234567890 6789012345 012322456789 sample outputs: true false false true false '''
input_num = input()
list_num = list(input_num) #string to list by each letter
sum_num = 0 for i in list_num: sum_num += int(i)
if len(input_num) == 10 and sum_num == 45: print("True") else: print("False")
import java.util.*;
public class tick {
public static void main(String[] args)
{
int x,y,z;
y=0;
Scanner ab= new Scanner(System.in);
System.out.print("SystemInput:");
x=ab.nextInt();
while( x>0) {
y = y+ (x % 10);
x =x/10;
}
if(y==45)
System.out.println(true);
else
System.out.println(false);
}
}
자바로 풀어봤습니다!
def quizeTest(data):
t = data.split()
result = []
for i in range(len(t)):
if len(t[i]) != 10:
result.append("false")
else:
for j in range(10):
if str(j) not in t[i]:
result.append("false")
break
result.append("true")
print(result)
quizeTest('0123456789 01234 01234567890 6789012345 012322456789')
s1="0123456789 01234 01234567890 6789012345 012322456789".split(" ")
for i in s1:
for inc in range(0,10):
if i.count(str(inc)) > 1:
output="False"
break
else:
output="True"
print(output)
파이썬
문자열을 카운트해서 문제 없으면 성공 으로 했습니다
c = input() x = 0 print(c) while c.count(str(x)) == 1: x += 1 if x == 10: print('Correct')
if x < 10: print('Fail')
a='0123456789 01234 01234567890 6789012345 012322456789'.split()
print(a)
for i in range(0,5):
if set(a[0])==set(a[i]) and len(a[i])==10:
print('True',end='\t')
else:
print('False',end='\t')
# 0~9까지의 문자로 된 숫자를 입력 받았을 때,
# 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
# sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
# sample outputs: true false false true false
seq = list(map(str, input().split())) # 임의의 숫자를 문자로 입력하여 리스트 seq에 저장, 입력하는 숫자의 개수는 제한없음...
res = [] # 결과물 저장을 위한 리스트
for num in seq:
if len(str(num)) == 10 and set(list(str(num))) == set([str(i) for i in range(0,10)]):
res.append(True)
else:
res.append(False)
print(res)
python 3.7
a = input().split(' ')
for i in a:
istrue = 1
for n in range(0,10):
if i.count(str(n)) != 1:
print("false", end=" ")
istrue = 0
break
if istrue == 1:
print("true", end=" ")
print()
a = input().split(" ")
for i in a:
if set(i) == set(map(str,range(0,10))) and len(i) == 10:
print("true", end=" ")
else:
print("false", end=" ")
개수로 10개가 되는 것을 먼저 골라내고 set을 통해 중복을 제거하고도 10개이면 True로 아니면 False로 나오게 했습니다. 고수님들은 역시 코드쓰시는게 다르시더군요 ㅎㅎㅎ
num='0123456789 01234 01234567890 6789012345 012322456789'
num_list=num.split(' ')
for j in range (len(num_list)):
if (len(num_list[j])==10):
set(num_list[j])
if(len(num_list[j])==10):
print(True)
else :
print(False)
num_input = input("Input numbers: ") # input number
if len(list(num_input))==len(set(num_input)): # if duplicated, the length of the set of digits is less than that of the input number
print("True")
else:
print("False")
#Duplicate Numbers
input = "0123456789 01234 01234567890 6789012345 012322456789"
inputlist = input.split()
for i in inputlist:
model = [0,1,2,3,4,5,6,7,8,9]
j = 0
while j < len(i):
if int(i[j]) in model:
model.remove(int(i[j]))
if model == [] and j == len(i)-1:
print("true")
elif j == len(i)-1 and not model == []:
print("false")
elif int(i[j]) not in model:
print("false")
break
j = j+1
a=input("0 부터 9까지의 숫자로 아무 문자열 입력:")
num=['0','1','2','3','4','5','6','7','8','9']
for i in num:
if a.count(i) !=1:
check=False
break
else:
check=True
if check:
print(check)
else:
print(check)
a = input().split(' ')
for i in range(len(a)):
b = set(a[i])
if len(a[i]) != len(b) or len(b) != 10:
print("fales")
elif len(a[i]) == len(b):
print("true")
def number(*args):
zerotonine=['0','1','2','3','4','5','6','7','8','9']
for a in args:
end_flag = False
used_number = []
for b in list(a):
if b not in used_number:
used_number.append(b)
else:
print('FALSE')
end_flag=True
break
if end_flag==False:
if zerotonine==used_number:
print('TRUE')
else:
print('FALSE2')
number('0123456789','012345','0011')
X = list(str(input()))
X.sort()
if X == ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
print(True)
else:
print(False)
``````{.python}
X = list(str(input()))
X.sort()
if X == ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
print(True)
else:
print(False)
C입니다
조건을 만족하는 숫자들은 오름차순으로 정렬했을 때 0123456789가 되는 것을 이용하여 문제를 풀어봤습니다
#include <stdio.h>
void Duplication(char param[], int len)
{
int i = 0;
int temp = 0;
int num = '0';
while (len != 0)
{
for (i = 0; i < len - 1; i++)
{
if (param[i] > param[i + 1])
{
temp = param[i];
param[i] = param[i + 1];
param[i + 1] = temp;
}
else
continue;
}
len--;
}
for (i = 0; i < 10; i++)
{
if (param[i] == num++)
{
if (i == 9)
printf("true \n");
else
continue;
}
else
{
printf("false \n");
break;
}
}
}
int main(void)
{
char arr[50];
int len = 0;
printf("숫자 입력: ");
scanf_s("%s", arr, 50);
while (arr[len] != 0)
len++;
if (len == 10)
Duplication(arr, len);
else
printf("false \n");
return 0;
}
a = '0123456789'
b = {int(x) for x in a}
def dupl(strNum):
if not len(strNum) == 10:
return False
setNum = {int(x) for x in strNum}
if len(b & setNum) == 10:
return True
else:
return False
c = '2345678901'
print(dupl(c))
d = '123451200000005'
print(dupl(d))
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
JAVA입니다.
Scanner sc = new Scanner(System.in);
System.out.print("0~9까지의 문자로 된 숫자를 입력하시오 => ");
String input = sc.nextLine();
char[] num = input.toCharArray();
boolean[] flag = new boolean[10];
outer :
for(char n : num ) {
for (char i=0; i<=9; i++) {
if(n==i && !flag[i])
flag[i] = true;
else if(n==i && flag[i]) {
System.out.println("숫자가 중복되었습니다.");
break outer;
}
} // inner for
} //outer for
num = input()
num = list(num)
num.sort()
fix_num =[]
for i in range(10):
fix_num.append(str(i))
print(fix_num)
print(num)
if fix_num != num:
print("False")
else :
print("True")
#05A
a=input('숫자를 입력하시오:')
A=list(a)
i=0
while i<len(A):
if A.count(A[i])==1:
print('True')
break
else:
print('False')
break
package d093_Duplicate_Numbers;
import java.util.Scanner;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input="";
boolean output;
int[] check = new int[10];
int i;
while(input!="0") {
input = sc.next();
output = true; //초기화
for(i=0; i<10; i++) check[i]=0; //초기화
for(i=0; i<input.length(); i++) {
check[input.charAt(i)-48]++;
}
for(i=0; i<10; i++) {
if(check[i]!=1) {
output=false;
break;
}
}
System.out.print(output+" ");
}
}
}
0123456789 01234 01234567890 6789012345 012322456789
true false false true false
파이썬
num_list=[0,0,0,0,0,0,0,0,0,0] # 10자리의 배열을 만들고
true_list=[]
while True: # 입력하다 도중에 끊을 수 있기에 while문으로 무한 루프 돌렸습니다.
input_num=int(input('0~9까지 숫자를 빼놓지않고 무작위로 입력하시오 : ')) # 입력된 숫자를 받습니다.
if input_num >= 10: # 9가 넘어가는 수를 입력시 while문을 빠져나와 다음 코드로 넘어가 True / False 판변 받습니다.
break
elif input_num == ' ': # 그냥 엔터 누르면 빠져나오게 구성하려했지만 잘 안되네요. 미완성 코드 입니다.
break
num_list[input_num] += 1 # 배열을 10자리 만들었고 0~9까지 입력이므로 입력된 숫자를 인덱스로하여 배열에 # 1을더하여 중복 숫자를 셀 수 있도록 했습니다.
for i in range(10): # 범위를 0~9로하였고 이를 인덱스로 활용합니다.
if num_list[i] == 1: # 배열의 i번째 인덱스가 1이라면 1번만 사용하였으므로 True를 true_list로 집어넣습니다.
true_list.append(True)
elif num_list[i] < 1 or num_list[i] >1 : # 1미만이거나, 1초과면 입력이 안되었거나, 중복 입력된것으로 간주되어
true_list.append(False) # False 반환 합니다.
if False in true_list: # true_list에 False가 하나라도 있다면 False 반환
print(False)
else:
print(True) # true_list에 True만 있다면 True 반환
package practiceLv1;
import java.util.*;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String numbers = scan.nextLine();
String[] list = {"0","1","2","3","4","5","6","7","8","9"};
String[] numbersArray = numbers.split("");
int cnt = 0;
while(true) {
if(numbersArray.length != 10) {
System.out.println(false);
break;
}
for(int i = 0; i<10; i++) {
for(int j = 0; j<10; j++) {
if(numbersArray[i].equals(list[j])) {
cnt++;
}
}
}
if(cnt==10) {
System.out.println(true);
}
else {
System.out.println(false);
}
break;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Duplicate_Nunber
{
class Program
{
static void Main(string[] args)
{
bool result = true;
string input_number = "0113456789";
Console.WriteLine("Input Number Lengh : " + input_number.Length);
char[] digit = input_number.ToCharArray();
for(int i = 0; i < input_number.Length; i++)
{
Console.WriteLine("Input_Number I : {0}" + i);
for(int j = i + 1; j < input_number.Length - 1; j++)
{
Console.WriteLine("Input_Number J : {0}" + j);
if(digit[i] == digit[j])
{
result = false;
break;
}
}
if (!result)
break;
}
Console.WriteLine("Test Result : " + result);
}
}
}
num=input()
s1=set([])
for i in range(0,10):
s1=s1|set([num[i]]) #문자열의 각 자리 숫자를 공집합에 더함
if s1==set(['0','1','2','3','4','5','6','7','8','9']): #결과 집합에 0부터 9까지 다 있으면 true 없으면 false
print('true')
else:
print('false')
집합을 이용한 풀이
a = '0123456789'
b = input('sample inputs:')
c = ''.join(sorted(b))
if a == c:
print('True')
else:
print('False')
파이썬 3.6 입니다
s = "0123456789"
def check_0_9_count(s):
d = {i: s.count(str(i)) for i in range(1, 10)}
if set(d.values()) == {1}:
return True
else:
return False
print(check_0_9_count(s))
def validNumber(a):
flag = False
loop = 0
b = ["0","1","2","3","4","5","6","7","8","9"]
d = sorted(a)
if d == b:
flag = True
return flag
#include <math.h>
bool Natural_Numbers_Overlap_checking(int N)
{
bool result = true;
int en = 1;
int N_1 = N;
while (N_1/=10){en++;}
bool N_checking[10];
int N_N[en];
for(int i = 0; i<en;i++)
{N_checking[i] =false;N_N[i] = (N / pow(10,i-1))%pow(10,i)}
for(int i = 0;i<en ;i++)
{if(N_checking[N_N[i]]==false){N_checking[N_N[i]]=true;}
if(N_checking[N_N[i]]){result =false;}}
return result;
}
inp = input("INPUT : ")
print(True) if (len(set(inp)) == 10) and (len(inp) == 10) else print(False)
결과
INPUT : 0123456789
True
a= input().split()
b=0
for i in a:
if len(set(a[b])) ==10 and len(a[b])==10:
print("TRUE",end=" ")
b +=1
else:
print("FALSE",end=" ")
b +=1
파이썬 이제막공부시작했습니다 초보스럽게 풀어봣습니다
num=input("0~9사이의 숫자로 이루어진 숫자열을 입력하십시오: ")
lst=list("".join(num))
lst.sort()
tlst=["0","1","2","3","4","5","6","7","8","9"]
if lst==tlst:
print("True")
else:
print("False")
a = input("sample input:")
b = a.split(' ')
for i in range(len(b)):
if int(len(list(b[i]))) == int(len(set(b[i]))):
print ('True')
else:
print('False')
n = {0,1,2,3,4,5,6,7,8,9}
m = set(map(int,list(input('0-9까지의 숫자입력: '))))
if m == n: print(True) else : print(False)
n = input("0~9>>")
nLst = n.split(' ')
numLst = "0123456789"
standardSet = set(numLst)
for num in nLst:
if len(num)==10 and set(num)==standardSet:
print("T")
else:
print("F")
input1 = int(input("몇개의 숫자 세트를 입력받을 것인가? : "))
howmanytimes = input1
tmplist = list() # or []
while howmanytimes:
howmanytimes -= 1
input2 = input("숫자 한 세트를 입력하시오 : ")
tmplist.append(input2)
for i in tmplist:
if set(i) == {1,2,3,4,5,6,7,8,9,0}:
print(True)
else :
print(False)
import java.util.Scanner;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner Sc = new Scanner(System.in);
int [] count = new int[10];
int count1= 0;
System.out.print("숫자를 입력하시오: ");
String str = Sc.nextLine();
String[] array = str.split("");
int[] numArray = new int[array.length];
for(int i = 0; i<array.length; i++) {
numArray[i]=Integer.parseInt(array[i]);
for(int l =0; l<10;l++) {
if(numArray[i] == l) {
count[l]++;
}
}
}
for(int k=0; k<10; k++) {
if(count[k] == 1) {
count1++;
}
}
if(count1 == 10) {
System.out.println("sample outputs true");
}
else {
System.out.println("sample outputs false");
}
Sc.close();
}
}
nums = input()
for i in range(10):
if nums.count(str(i)) == 1:
continue
else:
print("False")
break
else:
print("True")
중복허용하지 않으려면 이렇게 푸는게 맞는 거 아닌가요? 다른 사람들 푼거 보면 이상한거같은데
Nlist,check = list(input()), True
for i in range(10):
if Nlist.count(f'{i}') != 1:check = False
print(check)
비효율적인 풀이일까요??
A = input()
A_num = len(A)
A_set = set(A)
A_set_num = len(A_set)
if A_num >=10:
if A_num != A_set_num:
print(False)
else:
print(True)
else:
print(False)
a = input()
c = list(a)
def x(a):
b = 0
if len(a) == 10:
for i in c:
b += c.count(i)
if b == 10:
return True
else:
return False
else:
return False
python 3.8
import re
a="0123456789 01234 01234567890 6789012345 012322456789".split()
r=[]
for i in a:
if re.search(r"(\d)+",i).end() == 10 and len(set(i)) == 10:
r=r+[True]
else:
r=r+[False]
print(r)
-------------------------------------------------
import re
a="0123456789 01234 01234567890 6789012345 012322456789".split()
print([True if re.search(r"(\d)+",i).end() == 10 and len(set(i)) == 10 else False for i in a])
def chkDupNum(s): result = [] for num in s: if num not in result: result.append(num) else: return False return len(result) == 10
print(chkDupNum("0123456789")) print(chkDupNum("01234")) print(chkDupNum("01234567890")) print(chkDupNum("6789012345")) print(chkDupNum("012322456789"))
import collections
def duplicateNumber(num):
num = input('숫자를 입력하세요:')
numlist = collections.Counter(list(num))
return len(numlist.keys()) == 10 and len([i for i in numlist.items() if i[1] == 1]) == 10
duplicateNumber(num)
추천 풀이 파이썬 3.8에서 해봤습니다. 좋은거 배웠습니다.
n = [''.join(sorted(x)) for x in input().split()]
for x in n:
print("true" if x == "0123456789" else "false", end=" ")
n = input()
if len(n)==10:
i=0
while i<10:
if n.count(str(i))==1:
i+=1
if i == 10:print('true')
else: continue
else:
print('false')
num = input('숫자 입력: ') numlist = num.split(" ") tf = [] numlisti = [] for i in range(0, len(numlist)) numlisti = numlist[i] for j in range(0, 9) count = numlisti.count(j) if count > 1: tf.append('false') else: tf.append('true') i+=1
num = input('숫자 입력: ')
numlist = num.split(" ")
tf = []
numlisti = []
for i in range(0, len(numlist))
numlisti = numlist[i]
for j in range(0, 9)
count = numlisti.count(j)
if count > 1:
tf.append('false')
else:
tf.append('true')
i+=1
inputlist = input().split(' ')
for x in range(len(inputlist)):
alist = list(inputlist[x])
alist.sort()
blist = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
if len(alist) != len(blist):
print("false")
continue
no = 0
for i in range(len(alist)):
if alist[i] != blist[i]:
print("false")
no = 1
if no == 1:
continue
print("true")
def check_dup(x): flag = True for i in range(len(x)): if x[i] in "0123456789" : flag=True else: flag=False return flag
파이썬입니다
#입력 : 일정한 수열
#출력 : 해당 숫자가 0부터 9까지 숫자가 1번씩 쓰엿나 확인
a = input("0에서 9를 적당히 넣으세요")
b = "".join(a)
c= set(b)
if len(a)==10:
if len(b)==len(c):
print('true')
else: print('false')
else:print('false')
num = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
for i in num:
if len(i) == 10:
if '0' in i and '1' in i and '2' in i and '3' in i and '4' in i and '5' in i and '6' in i and '7' in i and '8' in i and '9' in i:
print("true")
else:
print("false")
else:
print("false")
파이썬을 시작하는 단계에서 이렇게 무식한 방법밖에 떠오르지 않더라구요....
def num(s):
number ='0123456789'
for x in number:
if s.count(x) != 1:
return False
else:
return True
print(num('0123456789'))
a='5678012349'
l=list(a)
n=0
s=0
for i in range(10):
for k in l:
if i==int(k):
n+=1
else:
pass
if n!=1:
s+=1
break
else:
pass
n=0
if s>0:
print('false')
else:
print('true')
파이썬으로 풀어보았습니다.
input_in = list(map(str, input().split()))
for i in input_in:
if len(i) == 10:
print("true")
else:
print("false")
def numcheck(num):
n=[0]*10
for i in range (0,len(num)):
n[int(num[i])]+=1
if (sum(n)==10) and ((not 1) not in n):
return(True)
else:
return (False)
print(numcheck(str(input('input number...'))))
def duplicate(duplicate_number):
duplicate_number = duplicate_number.split() # 체크할 문자가 space 기준으로 분리되기 때문에
for i in range(len(duplicate_number)): # 입력받은 문자받음 만큼만 검사
if len(duplicate_number[i]) == 10: # 스페이스로 구분된 여러 입력된 문자중 10개의 문자가 입력된 것만 아래와 같이 검사를 진행한다.
test=list() # 차례로 검사하기 위해 list변수 하나 추가
for n in range(10): # 입력받은 문자가 10개기 때문에 10개 모두 검사
if duplicate_number[i][n] in test: # 만약 중첩된 항목이 있으면 아무것도 하지 않고
pass
else:
test.append(duplicate_number[i][n]) # 중첩되지 않은 항목은 test변수에 append
if len(test) == 10: # len이 10이면 중첩된 것 하나도 없는 것이고
print("True ", end='')
else: print("False ", end='') # len이 10이 아니면 중첩된 것이 있는 것이다.
else: print("False ", end='') # 스페이스 로 구분된 여러 입력된 문자가 10개 가 아닌 문자열은 애초부터 그냥 False를 찍는다.
input_number = input("숫자를 입력하세요:")
duplicate(input_number)
숫자를 입력하세요:0123456789 01234 01234567890 6789012345 012322456789 True False False True False C:\work>
파이썬입니다.
import re
result=True
testlist=[]
testNum=['0123456789','01234','01234567890','6789012345','012322456789']
for num in testNum:
for i in range(10):
for j in re.finditer(str(i),num):
testlist.append(j.start())
if len(testlist)==0 or len(testlist)>=2:
result=False
break
else:
testlist=[]
print(result,end=" ")
result=True
testlist=[]
print("")
num = input("숫자를 입력하세요 : ")
len_num = len(num)
set_num = set(num)
lenset_num = len(set_num)
if len_num == lenset_num :
print("True")
else :
print("False")
temp=['0','1','2','3','4','5','6','7','8','9']
input_temp=input().split()
for i in range(0,len(input_temp)) :
input_temp[i]=list(input_temp[i])
input_temp[i].sort()
if input_temp[i]==temp :
print('true')
else:
print('false')
list_a=input().split(" ")
for key in list_a:
if len(key)!=len(set(key)):
print('false',end=" ")
elif len(set(key))!=10:
print('false',end=" ")
else:
print('true',end=" ")
if(strlen(cSourceAr) == 10)
{
int nSum = 0;
for(int i = 0 ; i < 10 ; i++)
nSum += cSourceAr[i];
if(nSum != 525)
cout << "false" << endl;
else
cout << "true" << endl;
}
else
cout << "false" << endl;
python
sample = "0123456789 01234 01234567890 6789012345 012322456789"
sample1 = sample.split()
base = '0123456789'
result =[]
for i in sample1:
if base == ''.join((sorted(list(i)))):
result.append("True")
else:
result.append("False")
print(result)
정렬 후 0123456789 문자열과 비교하여 출력
num=set([input('Enter the your number: ')])
test=set(["0123456789"])
if num & test== test:
print('true')
else:
print('false')
파이썬으로 작성했습니다.
sample_num = input("input a sequence of numbers from 0 to 9 only once. (Separation must use the space bar.) : ")
list_sample_num = sample_num.split(" ")
def analysis(list_sample_num):
for x in list_sample_num:
if len(x) != 10:
print(False)
elif len(x) == 10:
if len(x) == len(set(x)):
print(True)
else:
print(False)
analysis(list_sample_num)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.TreeSet;
public class Q093 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Input ? : ");
String[] input = scan.next().split("");
TreeSet<String> ts = new TreeSet<String>(Arrays.asList(input));
ArrayList<String> number = new ArrayList<String>(ts);
int sum = 0;
for (int i = 0; i < number.size() - 1; i++) {
if (number.get(i).equals(number.get(i + 1))) {
sum++;
}
}
if (sum > 0 || number.size() != 10) {
System.out.println("False");
} else {
System.out.println("True");
}
scan.close();
}
}
입력받은 문자열을 트리셋을 이용하여 정렬하고, number 배열을 반복문을 돌려서 중복되면 sum의 숫자가 1이 증가하게 만들었습니다. 그리고 밑에 if 문에서 sum =0이 아니거나(중복이 있거나), number.size()가 10이 아닐경우(숫자가 짧거나) False를 출력하고, 그 외의 경우에는 True를 출력시켜 봤습니다.
sample_input = input()
filtered = sample_input.split(" ")
real_filtered = set(filtered)
if len(filtered) == len(real_filtered):
print("True")
else:
print("false")
print("본 테스트는 중복숫자테스터입니다.")
numbers = input("숫자를 입력하시오:")
test_num = []
input_num = []
for num in range(10):
test_num.append(num)
for x in numbers:
if int(x) not in test_num:
print("False")
break
test_num.remove(int(x))
if len(test_num) == 0:
print("True")
else:
print("False")
set함수 없이 작성해봤습니다!! 파이썬 초보라 그런지 엄청 비효율적이지만 그래도 말끔하게 해결되긴하네요!!!!
#Duplicate_Numbers.py
inputs = input("input numbers : ").split(' ')
for number_str in inputs:
result = True
if(len(number_str) != 10 ):
result = False
else:
for i in range(0,len(number_str)):
if(number_str.count(number_str[i]) > 1):
result = False
break
print(result,end=' ')
i = input("숫자를 입력해주세요:")
if len(number) != 10 or len(number) != len(set(number)):
print("false")
else:
print("true")
다음의 두 조건을 만족시켜야만 true를 줌 1. 숫자의 길이가 10일 것. 2. 중복된 값을 제거했을 때 길이가 10일 것.
파이썬3입니다. 입력받은 리스트를 값별로 숫자로 쪼개서 오름차순 정렬 후 비교리스트와 비교하는 조건문을 사용했습니다. 불필요하게 길어진 코드를 줄일 수 있는지요?
input_list = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
compare_list = [i for i in range(10)]
print(['true' if sorted(list(map(int, input_list[i]))) == compare_list else 'false' for i in range(len(input_list))])
inputs = "0123456789 01234 01234567890 6789012345 012322456789"
outputs = [ ''.join(sorted(input)) == "0123456789" for input in inputs.split(" ")]
print(outputs)
# result : [True, False, False, True, False]
단순하게, 소트만 하면 값이 나오므로 정리해서 출력하였습니다.
public class test {
public static boolean test(String num) {
boolean[] number_set = new boolean[100];
for(int i=0;i<num.length();i++)
{
int each = num.charAt(i);
if(number_set[each])
{
return false;
}
number_set[each] =true;
}
return true;
}
}
import java.util.Scanner;
public class main {
public static void main(String[] args) {
System.out.println("숫자 입력 하세요 ");
Scanner sc=new Scanner(System.in);
String[] numbers = sc.nextLine().split(" ");
for(int i=0;i<numbers.length;i++)
{
System.out.print(test.test(numbers[i])+ " ");
}
}
}
package project;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner Sc = new Scanner(System.in);
String inp = Sc.nextLine();
String str[]=inp.toString().split("");
int[] num={0,0,0,0,0,0,0,0,0,0};
int check=0;
if(inp.length()!=10)
{
System.out.println("False");
}
for(int a=0; a<10; a++){
for(int b=0; b<10; b++){
if(Integer.parseInt(str[b])==a){
num[a]++;
}
}
}
for(int a=0; a<10; a++){
if(num[a]==1){
check++;
}
}
if(check==10){
System.out.println("true");
}
if(check!=10){
System.out.println("False");
}
}
}
sample = input("> ")
sample_list=sample.split()
for x in range(len(sample_list)):
print(sum([sample_list[x].count(str(i)) for i in range(10)]) ==len([sample_list[x].count(str(i)) for i in range(10)]))
파이썬입니다!
num = input("0~9까지 숫자를 이용하여 만든 문자열을 입력하시오: ")
try:
int(num) #문자가 들어가면 except로 가도록 하여 숫자외에 다른 값을 입력할 수 없도록 만들었습니다.
set1 = set(num)
errorfilter = set1.intersection({'+','-'}) # 부호를 표기하는 +,-가 위에 있는 int(num)을 통과하여 오류가 발생하므로 이를 걸러주기 위해 errorfilter를 만들었습니다.
errorexists = len(errorfilter)
if errorexists == 0 : #숫자로만 이루어져 있다면 errorexists의 값이 0이 되어 if 구문으로 들어옵니다.
length = len(num)
if length == 10:
reference = "0123456789"
set2 = set(reference)
set3 = set1.intersection(set2)
lst = list(set3)
result = len(lst)
if result == 10:
print("True")
else:
print("False")
else:
print("False")
else:
print("Error! 올바른 값을 입력하시오.")
except:
print("Error! 올바른 값을 입력하시오.")
standard = list(range(10))
test = list(input("숫자를 입력하세요 : "))
test_modi = []
for i in test:
test_modi.append(int(i))
test_modi.sort()
print(test_modi == standard)
초보입니다. 피드백 주시면 정말 감사하겠습니다.
Python 3.8
print(' '.join(['true' if sorted(number) == ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] else 'false' for number in input().split()]))
import java.util.*;
public class DuplicateNumbers {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String [] str = "0123456789 01234 01234567890 6789012345 012322456789".split(" ");
for(int i = 0 ; i < str.length ; ++i ) {
System.out.print(check(str[i])+ " ");
}
}
public static boolean check(String st) {
if(st.length() != 10 ) return false;
for(int i = st.length()-1 ; i > 0 ; --i) {
for(int j = 0 ; j < i ; ++j) {
if(st.charAt(i) == st.charAt(j))
return false;
}
}
return true;
}
}
n=input("숫자를 자유롭게 입력하시오:")
n_dic={}
for number in n:
if int(number) not in n_dic:
n_dic[int(number)] = 1
else:
n_dic[int(number)] += 1
result=True
for i in range(10):
if i not in n_dic or n_dic[i] > 1:
result=False
print(result)
static void Main(string[] args)
{
int[] Check_Num = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.Write("숫자를 입력해주세요 : ");
string Input_Num = Console.ReadLine();
char[] Array_Num = Input_Num.ToCharArray();
int[] Convert_Num = Array.ConvertAll(Array_Num,(ch) => Convert.ToInt32(ch));
Array.Sort(Convert_Num);
List<int> Temp = new List<int>();
for(int i = 0; i < Convert_Num.Length; i++)
{
Temp.Add(Convert_Num[i] - 48);
}
bool result = Temp.SequenceEqual(Check_Num);
Console.WriteLine($"결과 : {result}");
}
tatic boolean checkNumber(String number){
long num = Long.parseLong(number);
List<Long> list = new ArrayList<>();
for(int i = 0; i < number.length(); i++) {
list.add(num%10);
num = num/10;
}
Collections.sort(list);
for(int j = 0; j < list.size(); j++) {
if(list.size() != 10 || list.get(j) != j ) {
return false;
}
}
return true;
}
test1 = input('숫자를 입력하세요: ').split()
for i in test1:
if len(i) == 10 and len(set(i)) == 10:
print(True)
else:
print(False)
def num(a) :
b=['0','1','2','3','4','5','6','7','8','9']
if len(a) != 10 :
return False
if len(a) == 10 :
lst = []
for i in list(a) :
if i not in lst :
lst.append(i)
if len(lst) != 10 :
return False
return True
a = 0
dn = list(str(input('숫자를 입력하시오 : ')))
for i in range(0,10):
if dn.count(str(i)) > 1 or dn.count(str(i)) == 0 :
a += 1
if a > 0:
print('false')
else : print('true')
class TreatNumbers:
def __init__(self):
self.result = []
def identifyZeroNine(self,data):
for i in data:
j = list(i)
j.sort()
index = True
if len(j)==10 and int(j[0])==0:
for k in range (1,10):
if int(j[k])==int(j[k-1])+1:
pass
else:
index = False
else:
index = False
if index==True:
self.result.append(True)
else:
self.result.append(False)
return self.result
data = ["0123456789","01234","01234567890","6789012345","012322456789"]
a = TreatNumbers()
b = a.identifyZeroNine(data)
print (b)
public class method {
public static boolean DN(String num) {
String[] a = num.split("");
boolean b = true;
if(a.length!=10) {
return !b;
}
for(int i =0; i<10;i++) {
int c =0;
for(int j=0;j<10;j++) {
int n = Integer.parseInt(a[j]);
if(i==n) {
c++;
}
}
if(c!=1) {
b= false;
return b;
}
else {
b= true;
}
}
return b;
}
public static void main(String[] args) {
System.out.println(method.DN("4321567809"));
}
}
import java.util.Arrays;
public class DN {
public static boolean DN(String num) {
String[] a = num.split("");
Arrays.sort(a);
for(int i=0;i<a.length;i++) {
if(i!=Integer.parseInt(a[i])||a.length!=10){
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.println(DN.DN("4321567809"));
}
}
파이썬입니다, 입력된 문자열이 숫자인지 확인한 후, .set() 의 길이와 기존 입력된 숫자의 길이가 모두 10일때 0~9까지 중복없이 한번씩 쓰여진것이므로 True를 반환합니다.
nums = input('Input numbers: ')
if nums.isdigit():
if len(set(nums)) == 10 and len(nums) == 10:
print('true')
else:
print('false')
list1=list(map(str,input().split(" ")))
list2=[]
for i in list1:
str1=i
list3=sorted(str1)
if list3==["0","1","2","3","4","5","6","7","8","9"]:
list2.append("True")
else:
list2.append("False")
for i in list2:
print(i,end=" ")
# 입력받은 숫자의 갯수가 0~9 까지 10개이어야 한다.
# 중복 값이 있다면 false, 없다면 true
num_list = list(input().split(" "))
for n in num_list:
if len(n) != 10:
print(False)
else:
print(False) if len(set(n)) != 10 else print(True)
# result
# True
# False
# False
# True
# False
lst = input().split(' ')
for i in lst :
step1 = sorted(i)
step2 = []
for k in step1 :
if k not in step2 :
step2.append(k)
if len(step2) == 10 and len(step1) == 10 :
print('true ', end='')
else :
print('false ', end='')
inputs = input('input numbers')
input_sorted = sorted([i for i in inputs])
if input_sorted == ['0','1','2','3','4','5','6','7','8','9']:
print('true')
else:
print('false')
inputs=input().split()
for x in inputs:
duplicate=False
for y in range(10):
if x.count(str(y))!=1:
duplicate=True
if duplicate==False:
print('true',end=' ')
else:
print('false',end=' ')
def only_one(string): num_set = set(string) # 중복 제거 if len(string) == len(num_set) == 10: # 중복 제거 한 후의 갯수와 같고 그 갯수가 10이라면 return "true" else: return "false"
input_string = "0123456789 01234 01234567890 6789012345 012322456789" for s in input_string.split(" "): print(only_one(s), end=' ')
inp = input("0~9까지의 문자로 된 숫자배열을 입력하시오:")
sample = ['0','1','2','3','4','5','6','7','8','9']
def is0to9(i):
result = ""
temp = i.split(" ")
for t in temp:
result_temp = ""
for s in sample:
jud = 0
while jud < len(t) + 1:
if s not in t:
result_temp += "f"
else:
result_temp += "t"
jud += 1
if "f" in result_temp or len(t) != 10:
result += "false "
else:
result += "true "
return result
print(is0to9(inp))
#include <stdio.h>
#include <string.h>
int main(void) {
char a[100];
scanf("%s", a);
int b = 0;
if (strlen(a) == 10) {
for (int i = 0; i < strlen(a); i++) {
for (int v = i + 1; v < strlen(a); v++) {
if (a[i] == a[v])
++b;
}
}
if (b == 0)
printf("true");
else
printf("false");
}
else
printf("false");
return 0;
}
c언어로 했습니다. 문제 발견시 알려주세요
def Duplicate_Check(n):
list1=['0','1','2','3','4','5','6','7','8','9']
for i in range(0,len(n),1):
if (n[i] in list1):
list1.remove(n[i])
if list1==[]:
print(True)
else:
print(False)
k=input("your number? :")
Duplicate_Check(k)
엘릭서입니다.
def duplicate_numbers?(string),
do: String.length(string) == 10 and String.contains?(string, ~w[0 1 2 3 4 5 6 7 8 9])
def Checknumber(a):
required_number = "0123456789"
number_i = 0
if len(a)==10:
if len(set(a))==10:
for number in required_number:
if number in a:
number_i += 1
if number_i == 10:
return True
return False
a = input("0~9까지의 숫자를 입력하세요: ")
Checknumber(a)
num = input("0부터 9까지로 이루어진 숫자를 입력하세요:")
if len(num) == len(set(num)) == 10:
print('True')
else:
print('False')
``````{.python}
num = input("0부터 9까지로 이루어진 숫자를 입력하세요:")
count = 0
for i in range(0, 10):
if num.count('{}'.format(i)) > 1:
count += 1
if count > 0:
print('False')
else:
print('True')
0~9까지 1번씩은 꼭 들어가야 한다는 걸 빼먹고 아래와 같이 작성하였다가 댓글 참고하여 아래와 같이 작성하였습니다. 댓글들 보면 좋은 아이디어들이 정말 많네요 ..
data = '0123456789 01234 01234567890 6789012345 012322456789'.split(' ')
result = [True if len(set(num))==len(num) else False for num in data]
print(result)
Python Code
inputNum = input("Enter the Number: ")
if len(inputNum) != 10:
print("false")
else:
for j in range(10):
cnt = 0
for i in range(len(inputNum)):
if int(inputNum[i]) == j:
cnt = cnt+1
if cnt != 1 :
print("false")
break
print("true")
def check(string):
count = 0
for i in range(10):
if string.count(str(i)) == 1:
count += 1
if count == 10:
return "true"
else:
return "false"
inputing = input().split()
print(inputing)
result = []
for i in inputing:
result.append(check(i))
print(result,sep=' ')
inputs=input('문자를 입력하세요')
[print(False) if 10!=len(set(inputs)) or 10!=len(list(inputs)) else print(True)]
a_list = map(str,input().split(' '))
output = []
for a in a_list:
output.append('true')
for i in range(10):
if a.count(str(i)) != 1:
output[-1] = 'false'
break
else:
continue
for o in output:
print(o, end=" ")
number = str(input("숫자 입력: "))
list = []
for i in range(len(number)):
list.append(number[i])
n_list = sorted(set(list))
if len(n_list) == 10 and len(list) == 10:
print("True")
else:
print("False")
A = input("0~9까지의 숫자를 갯수와 상관없이 입력해주세요 : ")
a = {'0':1,'1':1,'2':1,'3':1,'4':1,'5':1,'6':1,'7':1,'8':1,'9':1}
b = {'0':0,'1':0,'2':0,'3':0,'4':0,'5':0,'6':0,'7':0,'8':0,'9':0}
for i in list(A):
b[i]+=1
if a==b:
print(True)
else:
print(False)
딕셔너리 개념으로 푸는것보다 집합의 길이로 푸는게 더 효율적이겠네요,,
public class CodingTest {
public static void main(String[] args) {
System.out.println(isUnique("01234256789"));
}
public static boolean isUnique(String text) {
boolean result = true;
for(int i = 0; i < text.length()&&result; i++) {
for(int j = i + 1; j < text.length()&&result; j++)
result &= (text.charAt(j)!=text.charAt(i));
}
return result;
}
}
inputs = '0123456789 01234 01234567890 6789012345 012322456789'
inputs_list = list(inputs.split(' '))
def f(x):
result = True
for i in range(10):
if x.count(str(i)) != 1:
result = False
break
return result
outputs_list = [f(inputs_list[i]) for i in range(len(inputs_list))]
outputs = ' '.join(map(str, outputs_list))
print(outputs)
# outputs = True False False True False
sample = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
check = ['0','1','2','3','4','5','6','7','8','9']
for i in sample:
if sorted(i) == check and len(i) == 10:
print(i)
[파이썬]
nums = input("숫자를 입력하시오 \n:").split(" ")
for i in nums:
if len(i) != 10: # 숫자의 길이가 10 아니면
print("false", end=" ")
continue
setnums = []
setnums += set(i)
if (len(setnums) == len(i)): # 중복이 없다면
print("true", end=" ")
else:
print("false", end=" ")
건전한 피드백 환영합니다
ll = {x:0 for x in range(10)}
N = '123456790'
for x in N:
ll[int(x)] += 1
for x in range(10):
if ll[x] != 1:
temp = 'False'
else:
temp = 'True'
print(temp)
a = "0123456789 01234 01234567890 6789012345 012322456789"
a = list(a.split())
for i in a:
i = sorted(i)
i = "".join(i)
if i == "0123456789":
print("True")
else:
print("False")
sort이용해서 풀어봣는데 역시 다른분들께 더 좋은코드로 보입니다. 연습하겟습니다.
def mySplit(s):
myList1 = list(map(str, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))
myList = list(map(list, s.split()))
for i in range(len(myList)):
myList[i].sort()
if myList[i] == myList1:
print("True")
else:
print("False")
mySplit("0123456789 01234 01234567890 6789012345 012322456789")
``````{.python}
def mySplit(s):
myList1 = list(map(str, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))
myList = list(map(list, s.split()))
result = []
for i in range(len(myList)):
myList[i].sort()
if myList[i] == myList1:
print("True")
else:
print("False")
mySplit("0123456789 01234 01234567890 6789012345 012322456789")
0~9까지 비교하는거를 set을 생각도 못하고 풀어봤는데 풀이를 보니까 그렇게 간단한걸 복잡하게한건가 싶넹
numbers = input("값을 넣으세요 : ")
num_list = list(str(numbers))
print("True" if eval("+".join(num_list)) == sum( i for i in range(0,10)) else "False")
값을 문자열 리스트로 바꾸고 총 합이랑 비교하는 코드로 해봤어요
def sam():
n=','.join(input('입력'))
numbers=n.split(',')
for i in range(10):
if str(i) not in numbers:
return False
return len(numbers) == 10
print(sam())
점프 투 파이썬 교재에도 있는 문제네요.
오늘 점프 투 파이썬 펼친 왕초보다람쥐는넥슨을뿌려라수준입니다.
처음엔 숫자열을 입력했을 때, 파이썬이 숫자 하나로 인식하기보다 숫자나열로 받아들이길 원해서 방법을 찾다가 set 기능이 아주 이 상황에 적합하다는걸 찾았습니다.
처음엔 set의 원소에 0123456789가 다 하나씩 들어가면 해결될 줄 알았더니, 중복된 숫자가 있는 경우도 True로 처리하더군요.
그래서 뭔가 아이디어가 없을까 생각하다가 답이 되는 나열들은 항상 숫자가 10개 들어간다는걸 깨달았습니다. 그래서 n의 길이도 10이고 n을 구성하는 숫자들도 10이면 답이 되겠다고 생각했습니다.
밑에 답안을 보니 아이디어는 유사한데 더 Fancy한 답들이 많은거 같네요 ㅎㅎ 배워갑니다
n = input("숫자열을 입력하세요 : ")
print(len(n)==10 and len(set(n))==10)
```{.java} import java.util.Scanner; import java.util.Arrays;
public class main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String[] NumberLine = s.nextLine().split(" ");
//입력받은 수를 정렬하고 앞뒤수가 같으면 false 다르면 true
for(int i=0; i<NumberLine.length; i++) {
for(int j=0; j<NumberLine[i].length()-1; j++) {
if(NumberLine[i].charAt(j)==NumberLine[i].charAt(j+1)) {
System.out.println(NumberLine[i].charAt(j)+"가 중복되었습니다.");
}
}
}
}
}
Python입니다.
def f(s):
return set(list(s)) == set(list('0123456789')) and len(s) == 10
다음 두 가지 조건을 모두 만족하면 문제에서 요구하는 '숫자가 각각 한 번 씩만 사용된 것'과 같다고 보았습니다. (1) 빠진 숫자가 없어야 한다 (2) 중복이 없어야 한다
(1)은 집합 연산으로 검사하고, (2)는 문자열의 길이로 확인했습니다.
다음은 0120이라는 문자열에서 집합을 얻는 과정입니다.
>>> list('0120')
['0', '1', '2', '0']
>>> set(list('0120')
... )
{'1', '0', '2'}
문제에서는 입력의 첫 글자가 0인 경우도 있으므로 입력 자료형이 항상 문자열인 것으로 간주했습니다.
파이썬 3.9입니다. 한 줄로 코딩했는데 가독성을 해칠 것 같아 후회됩니다.
print(True) if sorted(input('0~9의 숫자로 된 문자 입력')) == ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] else print(False)
```def duplicate(x):
`` x=str(x)
`` for i in range(10):
```` if x.count(str(i))>1:
``return False
`` return True
```{.python}
strInegers = input ("Type string of numbers with 0 ~ 0 digit only ")
listInteger = list(strInegers)
bIsDuplicated = False
nSum = 0
for cDigit in listInteger:
if (listInteger.count(cDigit) >= 2):
bIsDuplicated = True
break
nSum += int(cDigit)
if (bIsDuplicated | nSum != 45):
print("False")
else:
print("True")
n = input("inputs : ")
answer = []
for i in n.split() :
if len(i) != 10 :
answer.append("false")
else :
list = set()
for n in range(len(str(i))) :
list.add(str(i)[n:n+1])
if len(list) == 10 :
answer.append("true")
else :
answer.append("false")
f = " ".join(answer)
print("outputs : ", f)
# 1. 반복문을 이용한 판별 함수
def no_dup1():
inputs=input("중복 숫자 판별기: 숫자를 입력하세요")
list_inputs = list(inputs)
count = 0
#1. 반복문을 이용한 방법
for i in range(1, len(list_inputs)+1):
if str(i) in set(list_inputs):
count+=1
else:
count
if count == len(list_inputs):
return True
else:
return False
#2. set 를 통한 중복 확인
def no_dup2():
inputs = input("숫자를 입력하세요")
list_inputs = list(inputs)
if len(list_inputs)==len(set(list_inputs)):
return True
else :
return False
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("0~9까지 숫자를 입력하세요: ");
String[] str = sc.nextLine().split("");
List<String> list = new ArrayList<>(Arrays.asList(str));
Set<String> set = new LinkedHashSet<>(list);
if (list.size() != set.size() || list.size() < 10) {
System.out.println("false");
} else {
System.out.println("true");
}
}
numbers = input("0~9 사이 숫자로 이루어진 숫자열 입력 : ")
if len(numbers) == len(set(numbers)) == 10:
print(True)
else:
print(False)
#codingdojing_duplicate numbers
sampleInput = '01234567a9 01234 01234567890 6789012354 012322456789'
sampleList = sampleInput.split()
resultList = []
for sample in sampleList:
if len(sample) == 10: #size 10으로 일단 간단하게 거르기
temp = []
for num in sample: #각 숫자들에 대해서
try:
if int(num) in temp: #중복 숫자면 false
resultList.append(False)
break
else:
temp.append(int(num)) #temp 추가
except ValueError: #int가 아닌게 섞여있으면
resultList.append('Invalid value')
break
if len(temp) == 10: #다 통과하면 True
resultList.append(True)
else: #size 10이 아니면 False
resultList.append(False)
print(sampleList)
print(resultList)
"""
['01234567a9', '01234', '01234567890', '6789012354', '012322456789']
['Invalid value', False, False, True, False]
"""
sample_inputs = ['0123456789', '01234',
'01234567890', '6789012345', '012322456789']
outputs = []
for numbers in sample_inputs:
if len(numbers) == 10:
for n in range(10):
print(numbers)
try:
numbers = numbers.replace(str(n), "")
if n == 9 and len(numbers) == 0:
outputs.append(True)
except:
outputs.append(False)
print("?")
break
else:
outputs.append(False)
print(outputs)
a = input("0~9까지 숫자로 만든 문자열: ")
if len(set(a)) == 10 and len(a) == 10:
print("true")
else:
print("false")
def check(n):
if list(n).sort()==['0','1','2','3','4','5','6','7','8','9']:
return('true')
return('false')
def number_once(): a = input("숫자를 입력하세요: ") if ('0'and'1'and'2'and'3'and'4'and'5'and'6'and'7'and'8' and '9' in str(a)) and len(a) == 10: print("True") else: print("False")
number_once()```{.python}
```
package exam;
import java.util.Scanner;
public class EX17 {
public static void main(String[] args) {
// 0~9까지 배열 생성
// 여기서 equals로 맞는지 확인할 것
String index [] = new String[] {"0","1","2","3",
"4","5","6","7",
"8","9",};
// 맞으면 1씩 증가해서 10이되면 멈춤
int count = 0;
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("수 입력 : ");
String str = sc.next();
String [] arr = str.split("");
// 입력 받은 수를 10자리 이상
if(str.length() < 9) {
System.out.print("false\n");
continue;
}
// 이중 for문을 돌려 배열마다 값 확인
// 같으면 index[]를 비우고 count를 1씩 올린다
for(int i = 0; i < index.length; i++) {
for(int j = 0; j < index.length; j++) {
if(arr[i].equals(index[j])) {
index[j] = null;
count++;
}
}
}
// count가 10이 되면 true를 출력하고 멈춘다
if(count == 10) {
System.out.print("true");
break;
}else {
System.out.print("false");
}
sc.close();
}
}
}
java
a = '0123456789 01234 01234567890 6789012345 012322456789'
b = a.split(' ')
for row in b:
c = []
n = 0
if n < len(row):
while n < len(row):
c.append(row[n])
n += 1
else :
print(len(c) == 10)
num = str(input('숫자를 입력해주세요 : '))
if '0'and'1'and'2'and'3'and'4'and'5'and'6'and'7'and'8'and'9' in num:
#0~9까지 하나라도 안들어가 있으면 false
if len(set(num)) == len(num):
print('True')
else:
print('False')
else:
print('False')
i = input('0~9까지의 숫자를 입력하시오: ')
nlist = i.split(' ')
for e in nlist:
s = 0
if '0' and '1' and '2' and '3' and '4' and '5' and '6' and '7' and '8' and '9' in e:
for ind_n in e:
s += int(ind_n)
if s == 45:
print('true', end=' ')
else:
print('false', end=' ')
else:
print('false', end=' ')
static boolean outputs(String x) {
boolean isNum = true;
int[] str = new int[10];
for (int i = 0; i < x.length(); i++) {
str[x.charAt(i)-48] += 1;
}
for (int i = 0; i < str.length; i++) {
if (str[i] == 0 || str[i] >1)
isNum = false;
}
return isNum;
}
public static void main(String[] args) {
String[] num = {"0123456789", "01234", "01234567890", "6789012345", "012322456789"};
for(String i:num)
System.out.print(outputs(i) + " ");
}
import numpy as np
nums = str(input(print('숫자를 입력하세요 : ')))
num = [int(i) for i in nums]
list_num = np.unique(list(num))
if ((sum(list_num) == 45) & (len(list_num) == 10)):
print('0 ~ 9까지 모두 포함되어 있습니다.')
else:
print('비어 있는 숫자가 있습니다.')
var compare = [];
var flag = true;
function calc(x) {
compare = x.toString().split("")
for(i=0; i<compare.length; i++) {
for(j=i+1; j<compare.length; j++) {
if(compare[i] === compare[j]) {
flag = false; //false면 반복 더 돌릴 필요 없음
break;
}
}
}
return flag
}
n = str(input("숫자를 입력해주세요"))
m = set(n)
if len(n) == len(m) and len(n) == 10 :
print("true")
else :
print("false")
def jud(a):
judge = True
for i in range(1,10):
judge = judge & (str(i) in a) & (9 == len(a))
print(judge)
// Rust
use std::collections::HashSet;
fn main() {
let text = "0123456789 01234 01234567890 6789012345 012322456789";
// let mut text = String::new();
// std::io::stdin().read_line(&mut text).expect("input error");
let mut result: Vec<bool> = vec![];
for slice in text.split_whitespace() {
// 길이가 10이 아니면 바로 false
if slice.len() != 10 { //length in bytes (ASCII: 1 byte)
result.push(false);
continue;
}
// HashSet에 한 character씩 넣으면서 중복되면 바로 false
let mut set = HashSet::new();
for ch in slice.chars() { //byte가 아닌 character에 대한 iterator
if !set.insert(ch) { //HashSet.insert(v) : v가 이미있으면 false
result.push(false);
continue;
}
}
// 길이가 10이고, 중복이 없으면 true
result.push(true);
}
println!("{:?}", result);
}
public static void main(String[] args) {
String[] sample = { "0123456789", "01234", "01234567890", "6789012345", "012322456789"};
for (int i = 0; i < sample.length; i++) {
if (isCheck(sample[i].split("")) == true) {
System.out.print(true + " ");
} else {
System.out.print(false + " ");
}
}
}
public static boolean isCheck(String[] arr) {
boolean isc = false;
if (arr.length == 10 && isCheckNum(arr) != true) {
isc = true;
}
return isc;
}
public static boolean isCheckNum(String[] arr) {
boolean isc = false;
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i] == arr[j]) {
isc = true;
break;
}
}
}
return isc;
}
_input = input().split()
answer = [True if all([i.count(str(num)) == 1 for num in range(0,10)]) else False for i in _input]
print(answer)
sample_input = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
for i in sample_input:
print(len(i) == len(set(i)) == 10, end=' ')
sample_inputs=input("sample inputs: ")
sample_inputs=sample_inputs.split( )
for s in sample_inputs:
s_sort=sorted(s)
if ''.join(s_sort)=="0123456789":
print(True, end=" ")
else:
print(False, end=" ")
package org.javaturotials.ex;
import java.util.*;
import java.util.stream.Collectors;
public class test {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(true) {
String num = sc.next();
String ox = "";
int count =0;
for(int i=0; i<num.length(); i++) {
for(int j=0; j<num.length(); j++) {
if(i!=j) {
if(num.charAt(i)==num.charAt(j)) {
count++;
}
}
}
}
if(count==0) {
System.out.println("true");
}
else {
System.out.println("false");
}
}
}
}
a = input("insert number: ")
i = 0
while 1:
if str(i) in a:
if a.count(str(i)) >= 2:
print("False")
break
elif i == 9:
if str(i) in a:
print("True")
break
i = i + 1
elif str(i) not in a:
print("False")
break
str=input()
cmp=set('1234567890')
dic={} #두번 반복되면 false
for i in list(str):
dic[i]=list(str).count(i)
if set(dic.values())!={1}:
print('false')
elif cmp==set(str): #모든 숫자가 있으면 true
print('true')
else:
print('false')
lst = input("정수를 입력하세요: ").split()
result_lst = []
for number in lst:
mid_result = []
for i in range(0, 10):
if number.count(str(i)) != 1:
mid_result.insert(0, False)
else:
mid_result.insert(0, True)
if False in mid_result:
result_lst.append(False)
else:
result_lst.append(True)
print(result_lst)
import java.util.Arrays;
import java.util.Scanner;
public class DupulicateNum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] arr = sc.next().split(""); // 하나씩 잘라서 arr에 문자를 넣어줌
int[] intArr = new int[arr.length]; // 문자를 Integer로 변환후 넣어줄 배열
for (int i = 0; i < arr.length; i++) {
intArr[i] = Integer.parseInt(arr[i]); // 문자 arr[i]를 int형식으로 변환후 intArr에 삽입
}
Arrays.sort(intArr); // 비교를 위해 정렬
for (int i = 0; i < arr.length; i++) {
if (intArr[i] == i && intArr.length == 10) { // intArr에 저장된 수가 10개 이면서 동시에 배열의[i] 번째와 i의 숫자가 똑같다면.
System.out.println("true");
break;
} else { // 조건을 만족하지 않으면
System.out.println("false");
break;
}
}
}
}
a=input("#") li=[] for i in a: li.append(i) if len(set(li))==len(li): print("true") else: print("false")
a=input("#") print(["true" if len(a)==len(set(a)) else 'false']) print(['true' if sorted(a)==[str(i) for i in range(10)] else "false"])
package com.algorithm.algorithmpractice.dojang;
import java.util.*;
public class Memory {
public static void main(String[] args) {
// 일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.
// 0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
// sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
// sample outputs: true false false true false
String input = "6789012345";
String[] inputArr = input.split("");
List<String> inputList = new ArrayList(Arrays.asList(inputArr));
Set inputSet = new HashSet();
boolean result = true;
while (inputList.size() > 0){
String temp = inputList.get(0);
inputList.remove(0);
for(int i = 0; i < inputList.size(); i++){
if(temp.equals(inputList.get(i))){
result = false;
break;
}
}
}
System.out.println(Boolean.toString(result));
}
}
자바입니당.
def All(a): #리스트 형식으로 입력
a.sort()
if a == [0,1,2,3,4,5,6,7,8,9]:
print('모든 숫자가 하나씩 포함되어 있습니다.')
else:
print('모든 숫자가 하나씩 포함되어 있지 않습니다.')
def DN(random_arr):
to_list = [i for i in str(random_arr)]
to_list.sort()
if to_list == [str(n) for n in range(10)]:
print("true")
else:
print("false")
자바로 풀어 봤습니다.
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<Integer> inputNumbers = new ArrayList<>();
ArrayList<Integer> compareNumbers = new ArrayList<>(Arrays.asList(0,1,2,3,4,5,6,7,8,9));
System.out.println("0~9까지의 숫자가 각각 한 번 씩만 사용된 문자열 입력하시오: (ex, 6789012345)");
String inputData = scan.next();
if(inputData.length() != 10) {
System.out.println("False");
}else {
long numbers = Long.parseLong(inputData);
int j = 10;
while(j>0) {
inputNumbers.add((int)(numbers%10));
numbers /= 10;
j--;
}
for(int i=0; i<inputNumbers.size(); i++) {
if(compareNumbers.remove(inputNumbers.get(i)) == false) {
System.out.println("False");
}
}
if(compareNumbers.size()== 0) {
System.out.println("True");
}
}
}
}
sample = input()
sample_set = set([sample[i] for i in range(len(sample))])
if len(sample_set) == len(sample) == 10 :
print(True)
else :
print(False)
def duplicate_number(number):
if len(str(number)) == len(set(str(number))) == 10:
print('true')
else:
print('false')
number = input("0~9의 숫자를 이용해 문자열을 형성하시오 : ")
duplicate_number(number)
``````{.python}
def duplicate_number(number):
if len(str(number)) == len(set(str(number))) == 10:
print('true')
else:
print('false')
number = input("0~9의 숫자를 이용해 문자열을 형성하시오 : ")
duplicate_number(number)
함수로 만들어서 풀었습니다
inputs = input().split()
outputs=[]
for i in range(len(inputs)) :
if len(set(inputs[i]))==10 & len(inputs[i]):
outputs.append('true')
else :
outputs.append('false')
print(outputs)
python
nn = input("0~9까지의 문자로 된 숫자를 입력하시오: ").split()
result_list = []
for x in nn:
for i in range(0,9):
if x.count(str(i)) == 1:
result = 'ture'
else:
result = 'false'
break
result_list.append(result)
print(result_list)
data=[]
result=[]
answer='y'
while answer=='y':
a=[int(x) for x in input("숫자를 띄어쓰기로 구분하여 입력하시오.:").split()]
data.append(a)
answer=input("입력할 data가 있습니까?(y/n) : ")
a_len=len(data)
for i in range(0,a_len):
k_len=len(data[i])
k_set=set(data[i])
k_set_len=len(k_set)
if k_len==k_set_len:
result_tem='true'
result.append(result_tem)
else:
result_tem='false'
result.append(result_tem)
print(result)
def Duplicate_Numbers(num):
num_mat = [0 for i in range(0, 10)]
for i in num: num_mat[int(i)] += 1
print(num_mat.count(1) == 10)
print('숫자 여러 개를 입력 했을 때 0~9가 한번 씩만 입력되었는지 참&거짓으로 판별하는 함수')
num = input('숫자를 입력해주세요 : ')
Duplicate_Numbers(num)
include<stdio.h>
#include<string.h>
int Test(void);
int main(void)
{
int a = 1;
while (a)
{
printf("입력(멈추려면 end 입력) : ");
a = Test();
}
}
int Test(void)
{
int i, j;
char x[80] = { 0 };
scanf("%s", x);
if (strcmp(x, "end") == 0) return 0;
if (strlen(x) != 10)
{
printf("False\n");
return 1;
}
for (i = 0; i < strlen(x); i++)
{
for (j = i + 1; j < strlen(x); j++)
{
if (x[i] == x[j])
{
printf("False\n");
return 1;
}
}
}
printf("True\n");
return 1;
}
c입니다.
직접 풀이해본 코드(문자열을 한글자씩 끊어서 저장, 정렬을 이용한 방식)
def zeroToNine():
numbers=list(input('숫자열을 입력하세요. >> '))
# 문자열을 한 글자씩 끊어서 리스트로 저장.
numbers.sort() #문자 리스트를 정렬시킴.
if len(numbers) != 10 or ''.join(numbers) != '0123456789':
return False
#길이가 10이고(AND) 정리한 문자열이 '0123456789'인 경우만 참.
return True
zeroToNine()
풀이를 참고한 코드(set 집합 자료형 이용.) >> 중복을 즉시 제거 가능함.
def ZeroToNine():
numbers=set(input('숫자열을 입력하세요. >> ').strip())
return len(numbers)==10
ZeroToNine()
Python. 집합을 이용한다는 힌트를 얻을 때까지 해결을 못 하고 있었네요.
#1to9_2.py
def num_check():
print("0~9까지의 수를 한 번씩 사용해 임의의 수를 만들어 주세요.")
num=(input("임의의 수를 입력해 주세요. : ")) #사용자로부터 수 입력
num_set=set(num) #집합으로 만들어 중복 제거
if len(num)==len(num_set)==10: #중복 제거 후의 개수와 동일하며 그 값이 10일 경우
print("True")
else:
print("False")
num_check()
//C언어로 작성하였습니다.
char isDuplicated(char);
int main() {
char input[100];
printf("Sample input: ");
gets_s(input, 100);
printf("Sample output: %s", isDuplicated(input));
return 0;
}
char isDuplicated(char s) {
int intArr[10];
if (strlen(s) != 10) {
return "false";
}
int temp;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9; j++) {
if (s[j] > s[j + 1]) {
temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
if (strcmp(s, "0123456789") ==0) {
return "true";
}
else {
return "false";
}
}
import java.util.Arrays; import java.util.Scanner;
public class up009 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int number = 0;
System.out.print("입력고자 하는 개수: ");
number = scan.nextInt();
String[] inputs = new String[number];
System.out.print("Sample inputs: ");
for(int i=0; i<number; i++) {
inputs[i] = scan.next();
}
System.out.print("Sample outputs: ");
for(int i=0; i<number; i++) {
System.out.printf("%b ",isDuplicated(inputs[i]));
}
}
private static String check_inRange09(String string) {
if(string.length() != 10) {
return "false";
}
String[] stringArr = string.split("");
int[] intArray = new int[10];
for(int i=0; i<10; i++) {
intArray[i] = Integer.parseInt(stringArr[i]);
}
Arrays.sort(intArray);
String input = Arrays.toString(intArray);
if(input.equals("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]")) {
return "true";
}else {
return "false";
}
}
}
//자바 이용
list = []
j = input('sample inputs: ')
for i in j.split():
if len(i) == len(set(i)) == 10:
print('true', end=' ')
else:
print('falue', end=' ')
input_value = input("input : ")
input_value = set(input_value)
if len(input_value) == 10 :
print(True)
else :
print(False)
set 집합 자료형은 중복이 안된다는 댓글보고 작성했는데 훨씬 간결하네요
def check1():
num = input("9자리 숫자를 입력하시오:")
if len(num) > 10 or len(num) < 9 :
num = input("9자리 숫자를 입력하시오:")
else:
num_list = list(num)
out = False
for i in range(0,len(num)-1):
for j in range(i+1,len(num)):
if num_list[i] == num_list[j]:
print("중복된 숫자가 있습니다")
out = True
break
if out == True :
break
if out == False:
print(num)
def check2():
num = input("9자리 숫자를 입력하시오:")
if len(num) > 10 or len(num) < 9 :
num = input("9자리 숫자를 입력하시오:")
else:
num_list = list(num)
if len(list(num)) != len(set(num)) :
print("중복된 숫자가 있습니다")
else :
print(num)
cnt = [0 for i in range(10)]
def tester(s):
for i in range(len(s)):
if s[i] == '0':
cnt[0] += 1
elif s[i] == '1':
cnt[1] += 1
elif s[i] == '2':
cnt[2] += 1
elif s[i] == '3':
cnt[3] += 1
elif s[i] == '4':
cnt[4] += 1
elif s[i] == '5':
cnt[5] += 1
elif s[i] == '6':
cnt[6] += 1
elif s[i] == '7':
cnt[7] += 1
elif s[i] == '8':
cnt[8] += 1
elif s[i] == '9':
cnt[9] += 1
if cnt == [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]:
return True
else:
return False
python
a = input("0~9 사이의 숫자로 이루어진 문자열 입력 : ") print('true' if len(a) == len(set(a)) == 10 else 'false') # set()은 중복하지 않는 원소를 얻고자 사용
str1 = input()
def numCheck(str2):
for i in range(0,10):
if str2.count(str(i))!=1:
return False
return True
print(numCheck(str1))
# 입력받은 숫자에 0부터 9까지의 순서대로 몇 개 있는지 카운트
# 전부 1이면 True, 하나라도 1이 아니면 False
def one_num_each(num):
for i in range(10):
if num.count(str(i)) != 1:
return False
return True
num = input("0~9까지의 문자로 된 숫자를 입력하세요: ")
print(one_num_each(num))
input_val = input("0~9 숫자 문자열 입력 : ")
if len(input_val) == len(set(input_val)):
print('true')
else:
print('false')
# 0-9 한번씩만 사용되었는지 확인하기
def dupl(value):
countlist = []
for i in range(10):
count = value.count(str(i))
countlist.append(count)
for j in countlist:
if j != 1:
return False
else:
return True
print(dupl("0123456789"))
print(dupl("01234567890"))
n=input("숫자 입력 " ).split()
for i in n:
if len(i)!=10:
print("False",end=' ')
elif len(set(i))!=10:
print("False",end=' ')
else:
print("True",end=' ')
# using list comprehensiton + join
# sample = "0123456789 01234 01234567890 6789012345 012322456789".split(' ')
sample = input("sample inputs:").split(' ')
print(" ".join([ 'true' if len(s) == len(set(s)) else 'false' for s in sample ]))
num = input("NUM:").split()
for i in num:
s_num = set(map(int,str(i)))
if len(s_num) == len(i):
print('True',end=' ')
else: print('False',end=' ')
print()
data = input("데이터를 입력하세요")
data2 = data.split(" ")
for i in data2:
if len(list(i)) == len(list(set(list(i)))) == 10:
print("True", end = " ")
else:
print("False", end = " ")
sample_number = input("수 입력 :")
number_dict = {}
for i in range(10) :
number_dict[i] = 0
for n in sample_number :
for j in number_dict.keys() :
if n == str(j) :
number_dict[j] += 1
for nn in number_dict.values() :
if nn == 1 :
ret = True
else :
ret = False
print(ret)
def checkInput(inp):
if len(inp) != 10:
return False
used = []
for t in inp:
if t in used:
return False
used.append(t)
return True
inputs = ['0123456789', '01234', '01234567890', '6789012345', '012322456789']
for inp in inputs:
print(checkInput(inp))
num_input = input("숫자를 입력하세요 ")
num_list = []
for i in num_input:
if i in num_list:
print("False")
break
else:
num_list.append(i)
if len(num_list) == len(num_input):
print("True")
a = input("입력값 :")
list = []
for i in range(len(a)):
list.append(a[i:i+1])
for j in range(len(list)):
if list[j-1] == list[j]:
result = 'False'
else:
result = 'True'
print(result)
print('inputs:', numStrings := '0123456789 01234 01234567890 6789012345 012322456789')
print('outputs:', ' '.join([str(len(n) == len(set(n)) == 10) for n in numStrings.split()]))
> inputs: 0123456789 01234 01234567890 6789012345 012322456789
> outputs: True False False True False
#숫자 인풋 받기, 숫자가 아닐 경우 다시 입력을 하게 한다
x = True
while x == True:
input_str = input("숫자를 입력하세요:")
if input_str.isdigit() == True:
x = False
else:
continue
#리스트로 변환후, 각 자리수를 확인 하면서 count() 결과값 이 1초과 할때 False (즉 숫자 증복이 있다는 말)
list_str = list(input_str)
dupe_check = True
for i in list_str:
if list_str.count(i) > 1:
dupe_check = False
print(dupe_check)