알고리즘/파이썬
단어 공부 [1157]
코슬
2021. 2. 2. 17:04
반응형
단어 공부 [1157]
백준 - https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
문제
- 알파벳 대소문자로 된 단어가 주어진다.
- 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오.
- 단, 대문자와 소문자를 구분하지 않는다.
입력
- 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다.
- 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
출력
-
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다.
-
가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
예시
풀이과정
upper
를 통해서 미리 대문자로 통일시킴으로서 2가지 이득을 얻는다.- 중복된 글자의
count
용이 - 결과값 출력에 용이
- 중복된 글자의
- set을 통해서 단일 값들을 추출해서 각각의 중복횟수를 구한다.
- 중복횟수를 가지고 가장 많이 사용된 알파벳이 여러 개 존재하는 지 판별
- 있다면 '?' 출력
- 없다면
index
를 통해서 역으로 알파벳을 추적해서 출력
- 시간 초과 풀이과정
- 스트링의 하나의 값마다
count
를 진행해서 최대 중복값을 구한다. - 반복문 사이에 최대중복값의 글자가 다를 경우 따로 변수에 저장해서 나중에 비교를 한다.
- '시간초과' 가 출력되었다. - 효율적이지 못하다는 것인데 정확한 이유는 모르겠다.
- 스트링의 하나의 값마다
느낀점
- ''시간초과''.... ( vs코드에서 됬는데 왜그러냐고.... )
- 코드가 복잡하다? 풀면 된것이다!
반응형