-
[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]}")
'코딩테스트 > CodeUp' 카테고리의 다른 글
[Python] 6097 : 기초-리스트 설탕과자 뽑기 (0) 2024.05.22 [Python] 6096 : 기초 리스트 바둑알 십자 뒤집기 (0) 2024.05.22 [Python] 기초 100제 : 바둑판에 흰 돌 놓기 (0) 2024.04.22 [Python] CodeUp : 기초 100제 6,094 : 이상한 출석 번호 부르기3 (0) 2024.04.22 [Python] CodeUp : 기초 100제 6,092 이상한 출석 번호 부르기1 (0) 2024.04.19