백준

백준 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을 사용해 포함 여부를 확인할 수 있다.