isdigit은 string 클래스에 있는 메서드 입니다. 즉 문자열.isdigit() 이런식으로 사용하는 메서드 입니다.
str.isdigit()
문자열이 '숫자'로만 이루어져있는지 확인하는 함수 입니다.
문자가 '단 하나'라도 있다면 False를반환하고, 모든 문자가 '숫자'로만 이루어져있으면 True를 반환합니다.
사용법 1) str.isdigit("판단하고자 하는 문자열") 2) "판단하고자 하는 문자열".isdigit()
두가지 방법 다 사용이 가능합니다.
str.isdigit() 은음수를 뜻하는 '-', 소수점을 뜻하는 '.' 이것들을 숫자가 아닌 문자로 판단을 하기 때문에 실수나 음수를 판단하지 못합니다. 즉, "-2".isdigit(), "1.234".isdigit() 둘다 False 가 나오게 됩니다.
정리하자면 "오직 0을 포함한 양수형 정수로만 이루어진 문자열"만 isdigit에서 True가 나올 수 있습니다. 추가적으로 지수를 뜻하는 n제곱 2³, 3², 4² 이것도 True가 올 수 있습니다.
1-2) 파이썬 isdigit 예제
a = "BlockDMask" # 문자로만 이루어짐
b = "1234Blog" # 문자 + 숫자
c = "131231" # 숫자
d = "-234" # 음수
e = "1.23" # 소수점
f = "3²" # 3의 2제곱 기호 숫자
g = "⅔" # 수학 기호 숫자 2/3
h = "0" # 0
i = "0123" # 0 으로 시작한 숫자
# str.isdigit("문자열")
print(f"str.isdigit('{a}') : {str.isdigit(a)}")
print(f"str.isdigit('{b}') : {str.isdigit(b)}")
print(f"str.isdigit('{c}') : {str.isdigit(c)}")
print(f"str.isdigit('{d}') : {str.isdigit(d)}")
print(f"str.isdigit('{e}') : {str.isdigit(e)}")
print(f"str.isdigit('{f}') : {str.isdigit(f)}")
print(f"str.isdigit('{g}') : {str.isdigit(g)}")
print(f"str.isdigit('{h}') : {str.isdigit(h)}")
print(f"str.isdigit('{i}') : {str.isdigit(i)}")
print()
# "문자열".isdigit()
print(f"'{a}'.isdigit() : {a.isdigit()}")
print(f"'{b}'.isdigit() : {b.isdigit()}")
print(f"'{c}'.isdigit() : {c.isdigit()}")
print(f"'{d}'.isdigit() : {d.isdigit()}")
print(f"'{e}'.isdigit() : {e.isdigit()}")
print(f"'{f}'.isdigit() : {f.isdigit()}")
print(f"'{g}'.isdigit() : {g.isdigit()}")
print(f"'{h}'.isdigit() : {h.isdigit()}")
print(f"'{i}'.isdigit() : {i.isdigit()}")
결과에서 보시면str.isdigit() 함수는 문자로만 이루어지거나, 문자가 하나라도 있는 경우는 False를 반환하는 것을 알 수 있습니다. 앞서 이야기 드렸듯"-234" 음수나 "1.23" 과 같은 실수도 False로 반환하는 것을 알 수 있습니다.-, . 을 문자로 인식했기 때문입니다.
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.