jshong020823   11일 전

#두가지 문제가 있음

#1.다수 존재할때

#2.소문자 대문자를 동시에 판별해야함 해결

#3.갯수를 세고 또 몇개 있는지 알아야함

#4.뭐뭐가 있는지 어캐암

string = input("")

upper_string = string.upper() #문자열을 대문자로 만듬

b=-1

sets = set(upper_string) #집합으로 묶어서 원소만 분류

c=0

big_number =""

d=1

list_set = list(sets) #count할때 집합에서 묶인 원소 응용하려고 만듬

for i in list_set: #i라는 값이 list_set안에 있는 값(집합으로 묶인 원소)들을 순서대로 받음

b=upper_string.count(i) #b는 해당하는 값이 문자열내에 몇개 있는지 알려줌

if b==c: #c는 여러개의 b중 가장큰 값 즉 max_b로 보면됨.즉 이식에서는 b와 max_b가 같을때 ?를 출력하고 프로그램을 종료

print("?")

d=0

break

elif b>c: #b가 c(max_b)보다 클때 c=b로 변하고 big_number = i(값)을 갖음

c=b

big_number=i

if d!=0:

print(big_number)

"""내가 생각하는 문제는 만약 aabbccc라고 한다면 집합에서 A라는 값이 들어가고 b=2가 되고

b>c보다 크기때문에 c=b가 되고 big_number는 A가 되는데 다음 차례인 B라는 값이 들어가면 마찬가지로 b=2가 되니까

그러면 if구절에서 break당하는거 아닌가..

근데 또 프로그램은 잘 돌아감.

"""

프로그램이 잘 돌아가는데 틀린 이유가 제가 위에 서술한 이유때문인가욤??고수님들 답장 부탁 드립니다!!

movegreen   11일 전

(수정)

반례로 aabbccddd 가 있습니다. 17번째 줄에서 문제가 있습니다.

일단 set은 순서를 보장해주진 않습니다. 따라서 aabbccc를 해도 C가 나오기도 합니다.

하지만 당연히 알파벳을 늘리면 에러가 납니다.

jshong020823   10일 전

해결됐습니당 !! 감사합니다!!

댓글을 작성하려면 로그인해야 합니다.