ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 1412 : 알파벳 개수 출력하기
    코딩테스트/CodeUp 2024. 5. 20. 19:43

    https://codeup.kr/problem.php?id=1412

    문제 정보

    1412 : 알파벳 개수 출력하기

    [문제 풀기 전 생각한 부분]

    1. for문 문자열 반복 횟수는 어떻게 되는 가?

    1-1. 문자열 길이 만큼 반복

    1-2. char = 'ab cd' 였다면 총 5번 반복 즉, 공백 포함이다.

    # 문자열 반복 횟수
    char = 'abc'
    print(len(char))
    
    for i in char:
        print(2)
     
    for i in char:
        print(i)
        
    # 출력
    3
    2   
    2
    2
    a
    b
    c

    2. 각각 카운트 하는 방법

    3. 출력하는 방법

    [my_code]

    word = list(input())
    alpha = 'abcdefghijklmnopqrstuvwxyz'
    sum = 0 
    
    for i in alpha:
        if i in word:
            sum += 1
            print(f"{i}:{sum}", end='\n')
        else:
            print(f"{i}:0", end='\n')
    • 소문자로 이루어진 문자열을 입력 받음.
    • 소문자 알파벳 저장
    • sum 초기화 ( 나중에 카운트 할 거임)
    • for i in alpha , alpha의 길이 만큼 반복함
    • 만약 word안에 alpha가 있다면 
      • sum = sum + 1을 하고 
      • 해당 i번째 i 와 sum 을 출력. 줄 바꿈
    • 없다면
      • i번째 : 0을 출력

    [문제점]

    1. sum이 중첩되서 출력될 때 a: 1 d: 2 s: 3이 출력된다. 

    [문제점 해결]

    • 딕셔너리를 활용해서 풀어보았다.
      • 딕셔너리란 key - value로 이루어진 쌍을 데이터로 저장하는 자료형으로 중괄호 {}를 사용하며, 각 항목은 콜론 : 으로 구분된 key : value 의 쌍으로 이루어져있다.
    # 딕셔너리 생성
    my_dict = {'apple': 3, 'banana': 5, 'orange': 2}
    
    # 딕셔너리 출력
    print(my_dict)
    
    # 'apple' 키에 해당하는 값 출력
    print(my_dict['apple'])
    
     
    #출력
    {'apple': 3, 'banana': 5, 'orange': 2}
    3
    word = input()
    alpha = 'abcdefghijklmnopqrstuvwxyz'
    
    alpha_count = {char : 0 for char in alpha}
    #print(alpha_count)
    
    for char in word:
        if char in alpha:
            alpha_count[char] += 1
    
    print(alpha_count)
    • 여기서 word에 love you 라고 작성하였다면 총 8번 반복할 것이다. 어차피 중간의 공백이 들어가도 alpha에 없기 때문에 한번 더 반복되도 상관없다. 
    • 혹시 위 코드를 보고 이해를 먼저 해보고 안된다면 아래 설명을 읽어보자.
    • word = input()  : 사용자로부터 문자열을 입력받는다.
    • alpha = 'abc,...,xyz' : alpha 초기화 
    • alpha_count = {char : 0 for char in alpha} : alpha_count에 {'a':0,'b':0,.....'z':0} 저장
    • for char in word : word의 length만큼 반복 word가 char에 하나씩 순회하면서 검증할 예정
    • if char in alpha : word의 각 문자 char이 alpha에 속하는 지 확인하는 조건문
    • alpha_count[char] += 1 : 속한다면 +1 
      • ex) 주어진 문자열 word 가 'hello' 이고, char이 'e'라면 이 코드는 딕셔너리 alpha_count에서 'e'라는 키에 1을 더함.

    해결한 줄 알았던 문제해결의 문제점

    출력이 개행이 들어감. 

    a : 0

    b : 0 

    word = input()
    alpha = 'abcdefghijklmnopqrstuvwxyz'
    
    alpha_count = {char : 0 for char in alpha}
    #print(alpha_count)
    
    for char in word:
        if char in alpha:
            alpha_count[char] += 1
    
    for i in alpha:
        print(f"{i}:{alpha_count[i]}")

     

     

     

     

Designed by Tistory.