ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] BOJ 10808 : 알파벳 개수
    코딩테스트/백준 2024. 10. 9. 08:55

    요구사항

    1. 시간 제한 1초 & 메모리 제한 256MB
      1. 알파벳의 개수가 26개이니, 하고 싶은 거 다 해 
    2. 소문자로 이루어진 문자열의 각 알파벳이 몇 개인지 구하는 프로그램.

    설계

    1. if문이나 case문으로 하나하나 작성하기 싫었다. 
    2. 메모이제이션을 이용, 필요한 정보만 저장하면 된다.
    3. 사용자로부터 입력을 받는다. (word)
    4. 필요한 정보를 저장할 리스트를 0으로 초기화한다. 
    5. 문자열은 리터럴이기 떄문에, for alpha in word: 
    6. 리스트의 위치에 넣어준다. -> ord(alpha) & ord('a') 
    7. 리스트[location] 에 1를 더해준다. 

    구현

    word = input()
    dp = [0] * 26 # 알파벳의 개수 
    
    for alpha in word:
        location = ord(alpha) % ord('a')
        dp[location] += 1
    
    print(*dp)

    신기?했던 점

    확실히 문제를 전보다 많이 접하고 나니 다른 풀이법도 보인다. 

    백준 문제 처음에는 로직을 어떻게 짤 지, 기본 문법도 몰랐다. 그 다음엔 생각할 수 있는 방법이 1개 정도였다. 그 1개의 방법이 최적화된 코드 또한 아니다. 현재는 최적화된 코드는 아니여도 코드 한줄 한줄 왜 썼는 지에 대한 이유와 여러 가지 방법 중에서 택할 수 있는 점이 좋다. 앞으로 더 많이 !!. 다시 쉬운 문제로 돌아오는 이유는 알고리즘 주차 동안 쳐내기 바빠 내가 어디서 막혔는 지 취약점을 알고 싶기 때문이다.  

    '코딩테스트 > 백준' 카테고리의 다른 글

    [Python] BOJ 13300 : 방배정  (0) 2024.10.11
    [ Python] BOJ 3273 : 두 수의 합  (0) 2024.10.10
    [Python] BOJ 14888 : 연산자 끼워넣기  (1) 2024.10.07
    [Python] BOJ 15486 : 퇴사2  (1) 2024.10.05
    [Python] BOJ 1946 : 신입 사원  (0) 2024.10.02
Designed by Tistory.