단어 공부 [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코드에서 됬는데 왜그러냐고.... )
  • 코드가 복잡하다? 풀면 된것이다!
반응형

'알고리즘 > 파이썬' 카테고리의 다른 글

이진수 덧셈[1252]  (0) 2021.02.04
성 지키기 [1236]  (0) 2021.02.02
명령 프롬프트 [1032]  (0) 2021.02.02
직사각형에서 탈출 [1085]  (0) 2021.02.02
더하기 사이클[1110]  (0) 2021.01.31