일전에 뭐 게임 회사에서 본 간단한 퀴즈 테스트 입니다.
0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오.
sample inputs: 0123456789 01234 01234567890 6789012345 012322456789
sample outputs: true false false true false
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();
}
2015年11月07日 07:37
-- 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");
}
}
}
2015年10月08日 13:48
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넣습니다 ^^
2015年10月13日 00:42
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;
}
2015年10月26日 00:34
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
2016年01月31日 19:36
자바입니다.. 입력받은 값의 바이트코드를 비교해서 숫자와 공백문자 이외의 입력을 받을경우 에러를 뱉도록 해놨어요
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 + " ");
}
}
2016年03月07日 16:16
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;
}
자바
자바로 코딩
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");
}
}
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");
}
2016年08月10日 00:18
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 + " ");
}
}
}
풀이 작성