코딩도장

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개의 풀이가 있습니다. 10 / 51 Page

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

2017年02月10日 16:47

김경수

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

2017年02月14日 00:53

김구경

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

2017年02月15日 03:40

genius.choi

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

2017年03月15日 16:27

ken choi

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

파이썬입니다. 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)

2017年03月16日 08:23

c0din9

댓글 작성은 로그인이 필요합니다.
a.append(0 for i in range(10)) 이렇게 하면 되려나요? - S ReolSt, 2017年05月26日 11:30 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
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);
 }

2017年03月17日 19:41

강민수

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

파이썬

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")

2017年03月18日 00:05

황인우

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

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;
 }
}

2017年03月19日 22:35

KimSeonbin

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

풀이 작성

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

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