코딩도장

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

321개의 풀이가 있습니다. 1 / 33 Page

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",
댓글 작성은 로그인이 필요합니다.
와, 무릎을 탁쳤네요! - 디디, 2016年03月19日 14:42 M D
이렇게 간단한걸... - 예강효빠, 2017年04月20日 07:03 M D
이렇게 하면.. 다른 답변들 과는 달리 숫자가 아는 값이 들어와도 비교가 되겠네요. 감사합니다! - Jaeman Lee, 2021年07月08日 17:21 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

두줄로 만들어 보았습니다.

a = input("0~9 사이의 숫자로 이루어진 문자열 입력 : ")
print('true' if len(a) == len(set(a)) == 10 else 'false')
댓글 작성은 로그인이 필요합니다.
제생각엔 이게 가장 좋은풀이 같아보여요 - fox.j, 2021年01月25日 18:11 M D
와 진짜 세상에서 제일 깔끔한데 함수가 아니어서.. ᅲᅲ - 이병휘, 2022年04月08日 09:52 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

파이썬 2.7.6 입니다.

print map(lambda n:len(set(n))==10 and len(n) ==10 ,"0123456789 01234 01234567890 6789012345 012322456789".split())
댓글 작성은 로그인이 필요합니다.
그냥 한줄로 가네요... 대단합니다. - Quan Lee, 2017年09月22日 01:05 M D
+1 python 3.X로 한다면 이렇게 해야겠죠. print (list(map(lambda n:len(set(n))==10 and len(n) ==10 ,"0123456789 01234 01234567890 6789012345 012322456789".split()))) - Quan Lee, 2017年09月22日 01:11 M D
왜 list를 붙여야하는지 혹시 이유를 알 수 있을까요? - ss2663, 2021年05月07日 17:18 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
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함수를 활용하면 중복된 원소를 모두 단일화할 수 있으므로, 그렇게 정리된 리스트가 원래의 숫자 입력을 리스트로 만든 것과 동일한가를 판가름하는 구조로 짜 보았습니다.

2015年09月16日 21:01

박재우

댓글 작성은 로그인이 필요합니다.
파이썬의 set이라는 함수가 특이하군요. 중복 제거해서 비교한다는 아이디어도 좋구요. ᄏ - 임 정구, 2015年09月17日 09:13 M D
+1 012345가 false가 안나오고 true라 나오는군요. 0~9까지 숫자가 각 한번씩은 사용되었는지가 문제의 핵심이라..ᅲᅲ - \일레기, 2018年06月13日 23:23 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

파이썬입니다.

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=' ')

2015年11月10日 12:25

김경호

댓글 작성은 로그인이 필요합니다.
셋을 생각했었는데, 기존의 자기와 비교한는 것은 생각을 못했네요 훌륭하십니다 - 디디, 2016年03月19日 14:45 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

파이썬입니다.

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)
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
def once(s):
 print('True' if s.isdigit() and len(set(s)) == 10 else 'False')

2019年01月12日 10:31

김영성

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

2019年08月08日 12:47

이성표

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

0부터9 니까 무조건 숫자 10개가 나와야 한다는 것과, 집합은 중복을 사용하면 안된다는 생각을 이용했습니다

number = input('numbers?')
if len(list(number)) != 10 or len(list(number)) != len(set(number)):
 print ('false')
else:
 print ('true')

2020年05月05日 07:10

아울

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

2021年03月26日 22:31

잘해보자

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

풀이 작성

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

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