-
[백준/BOJ] 1157번 : 단어 공부 _Python알고리즘/백준(BOJ) 2022. 3. 3. 19:36728x90반응형
>문제
>접근방법
시간초과를 면하려면 모든 문자열을 검사하는 것이 아니라 중복된 문자를 모두 빼고 남은 문자열을 검사해야한다. count로 알파벳 개수를 세고 temp보다 크면 temp에 넣는다.
>풀이법
1. ch에 문자열을 입력받은 후 모두 대문자화 해준다. upper()
2. ch2에 입력받은 문자열에서 중복을 제거해서 넣어준다. join(set())
3. ch2의 모든 요소의 개수를 세고 비교해보면서 가장 큰 값은 temp에 넣는다.
4. temp가 갱신될 때마다 ch2[i]를 out에 새로 담고 out을 출력한다.
>코드
ch = input() ch = ch.upper() ch2 = ''.join(set(ch)) out = [] temp = 0 for i in range(len(ch2)): cnt = ch.count(ch2[i]) if temp<cnt: temp = cnt out = ch2[i] elif temp == cnt: out = '?' print(out)
>결과
>결론
c로 풀다가 시간초과 나오길래 내버려두고 있었는데 우연히 다시 보게 되서 풀었다. 아마 c로 해도 문자 중복 제거만 하면 풀릴듯
LIST'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/BOJ] 1012번 : 유기농 배추 _Python (0) 2022.03.09 [백준/BOJ] 2606번 : 바이러스 _Python (0) 2022.03.07 [백준/BOJ] 9935번 : 문자열 폭발 _Python (0) 2022.03.03 [백준/BOJ] 5397번 : 키로거 _Python (0) 2022.03.01 [백준/BOJ] 10799번 : 쇠막대기 _Python (0) 2022.02.28