백준 6단계 (문자열) - 5, 6 번

LEE'S·2022년 12월 17일
0

백준

목록 보기
6/27

1번 (1157번)

처음에는 다음과 같은 코드로 작성했는데 시간초과로 실패했다.

str = input()
str = str.upper() 

arr = []
ll = len(str)
for i in range(ll) :
  often = str[i+1:].count(str[i])
  arr.append(often)

if arr.count(max(arr)) == 1 :
  max_num = arr.index(max(arr))
  print(str[max_num])
else : 
  print("?")

다른 풀이를 조금 참고하면서 다시 작성했다.

str = input()
str = str.upper() 

letters = list(set(str)) 

arr = []
for i in letters :
  arr.append(str.count(i))

if arr.count(max(arr))==1 : 
  print(letters[arr.index(max(arr))]) 
else : print("?")
  1. 대문자로 다 변환한 후
  2. 중복된 문자 없도록 set()함수로 감싼 후 다시 list() 로 하여 리스트화한다
  3. 2에서 만든 리스트를 한바퀴 돌면서 각 알파벳들의 횟수를 arr 배열에 넣는다
  4. 만약 arr 배열의 최대수가 하나이면 그 최대수가 나타내는 알파벳을 출력하고 아니면 "?"가 출력하도록 한다
profile
기록 블로그

0개의 댓글