728x90
반응형
SW Expert Academy에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.
https://swexpertacademy.com/main/main.do
문제 : 다음의 결과와 같이 입력된 문자열의 문자 빈도수를 구하는 프로그램을 작성하십시오.
input
abcdefgabc
output
a,2
b,2
c,2
d,1
e,1
f,1
g,1
비효율적인 code
T=input()
a_count=0
b_count=0
c_count=0
d_count=0
e_count=0
f_count=0
g_count=0
for i in T:
if i=="a":
a_count+=1
elif i=="b":
b_count+=1
elif i=="c":
c_count+=1
elif i=="d":
d_count+=1
elif i=="e":
e_count+=1
elif i=="f":
f_count+=1
elif i=="g":
g_count+=1
print("a,%d"%a_count)
print("b,%d"%b_count)
print("c,%d"%c_count)
print("d,%d"%d_count)
print("e,%d"%e_count)
print("f,%d"%f_count)
print("g,%d"%g_count)
비효율적인 방법으로 pass가 되기는 하나 추천하지 않는 방법이다.
효율적인 code
T=input()
frequency = {}
for i in T:
count = frequency.get(i,0)
frequency[i] = count + 1
for j,k in frequency.items():
print("%s,%d"%(j,k))
빈도 딕셔너리를 만들어 두고 get함수로 딕셔너리의 Key로 Value를 얻을 수 있는데 첫번째 for문을 통해 key에 대응하는 문자의 빈도값 즉 value값을 1씩 증가시킨다. 그 후 출력하면 된다.
반응형
'Programming > SWEA' 카테고리의 다른 글
[SWEA 6239].[파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 2 (0) | 2021.07.28 |
---|---|
[SWEA 6232].[파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 1 (0) | 2021.07.28 |
[SWEA 6261].[파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 3. 자료구조 - 셋, 딕셔너리 9 (0) | 2021.07.28 |
[SWEA 6260].[파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 3. 자료구조 - 셋, 딕셔너리 8 (0) | 2021.07.27 |
[SWEA 6259].[파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 3. 자료구조 - 셋, 딕셔너리 7 (0) | 2021.07.27 |