코딩도장

Duplicate Numbers

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

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

  • sample inputs: 0123456789 01234 01234567890 6789012345 012322456789

  • sample outputs: true false false true false

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

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

파이썬

a=list(input("0~9의 숫자를 입력하세여")) if len(sorted(set(a)))==10 : print("true") else : print("false")

2018年04月18日 23:40

jungmin

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

2018年05月01日 22:57

raidria

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

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)

2018年05月03日 08:46

퀀텀스토리

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
// 자바입니다
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이여야만 트루를 출력하게했어요

2018年05月06日 16:50

정몽준

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

2018年05月14日 15:48

배혁남

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

2018年05月16日 12:17

한카일

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

2018年05月20日 22:50

채상엽

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

2018年05月21日 10:42

聂金鹏

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

저도 한줄 짜리!

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

풀이 작성

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

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

no duplicates x 1

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

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