이카's
article thumbnail
Published 2020. 10. 5. 15:15
Baekjoon #1157번 단어공부 Python BOJ

문재해석 

입력값 문자가 주어졌을때 문자중에 최대로 많은 문자 찾기

단 최대 문자가 2개 이상일때는 "?" 을 출력

문제 해석이 직관적으로 할 수 있을 만큼 어렵지 않았다. 하지만 set()함수와 기초적인 부분에서 익숙하지 않은 함수를 사용해 보았다.

2보다 작은 경우를 출력하기 위해 약간 애를 먹었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
= input().upper()
s_list = list(set(s)) #중복제거
temp = []
 
#알파벳 횟수 카운트
for i in s_list:
    temp.append(s.count(i))
 
#알파벳 최대가 2 이상인 경우
if temp.count(max(temp)) >= 2:
    print("?")
else#2보다 작은 경우
    print(s_list[temp.index(max(temp))])
cs

 


다른분의 방법이 신기한게 있어서 참조 해보았다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
= input().upper()
temp = []
 
for i in set(s):
    temp.append(s.count(i))
print(temp)
 
#최대값 위치 찾기
maxnum = []
for i, x in enumerate(temp):
    if x == max(temp):
        maxnum.append(i)
 
if len(maxnum) > 1:
    print('?')
else:
    print(list(set(s))[temp.index(max(temp))])
cs

enumerate()함수를 사용하는 방법으로 이런 방법도 있구나 했다.

 

반응형

'BOJ' 카테고리의 다른 글

Baekjoon #2908번 상수 Python  (0) 2020.10.05
Baekjoon #1152번 단어의갯수 Python  (0) 2020.10.05
Baekjoon #2675번 문자열반복 Python  (0) 2020.10.05
Baekjoon #10809번 알파벳찾기 Python  (0) 2020.10.05
Baekjoon #1065번 한수 Python  (0) 2020.10.05
profile

이카's

@Edan Cafe ☕

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!