백준
백준 5622 문제풀이 [python]
ys.k
2023. 6. 24. 01:41
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
문제를 보자.
그냥 하드코딩 했다.
근데 하드코딩 뜻이 이게 맞나?
코드
str = input()
time = 0
for i in range(len(str)):
a = ord(str[i])-64
if 0<a<4:
time += 3
elif 3<a<7:
time += 4
elif 6<a<10:
time += 5
elif 9<a<13:
time += 6
elif 12<a<16:
time += 7
elif 15<a<20:
time += 8
elif 19<a<23:
time += 9
elif 22<a<27:
time += 10
print(time)
논리가 없기에 설명할 것이 없다.
그렇지만 이따구로 코드 작성하고싶지 않다.
좀 더 이쁘게 만들기 위해 다른 사람 코드를 참고했다.
역시 타인을 보고 배워야한다.
똑똑한 사람 정말 많다.
dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
a = input()
ret = 0
for j in range(len(a)):
for i in dial:
if a[j] in i:
ret += dial.index(i)+3
print(ret)
훨씬 간단하다.
출처 : https://j-remind.tistory.com/76
(파이썬) 백준 알고리즘 5622번 다이얼
문제풀이 (Python) 12345678dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']a = input()ret = 0for j in range(len(a)): for i in dial: if a[j] in i: ret += dial.index(i)+3print(ret)Colored by Color Scriptercs문제 출처https://www.acmicp
j-remind.tistory.com
배운 점
1. 리스트에 인덱스로 접근하여 불러온 값에도 in을 사용해 포함 여부를 확인할 수 있다.