처음 짰을 때는 이렇게 짰었다.
list에 각 알파벳을 넣고,
리스트의 길이만큼 for문을 돌린다음, 3으로 나눈 나머지의 값+2의값을 리스트에 추가하였다.(svyz제외)
이게 코드가 길어지니까 생각도 많아져서 계속 꼬이게 되더라
a=input()
li=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
lis=[]
p=0
for i in range(len(li)):
for ii in li:
if (li.index(ii)+1)//3==i and (li.index(ii)+1)%3==1:
if ii=='S':
lis.append(i+1)
elif ii=='V':
lis.append(i+1)
elif ii=='Y':
lis.append(i+1)
else:
lis.append(i+2)
elif (li.index(ii)+1)//3==i and (li.index(ii)+1)%3==2:
if ii=='Z':
lis.append(i+1)
else:
lis.append(i+2)
elif (li.index(ii)+1)//3==i and (li.index(ii)+1)%3==0:
lis.append(i+1)
for i in a:
for ii in li:
if i ==ii:
p=p+lis[li.index(ii)]
print(p+len(a))
엄청 오래걸렸었고....꼬여서 돌아버릴것 같았다.
다 풀고 다른사람의 코드를 봤을때 아래와같이 그림처럼 묶어서 리스트를 만들면 된다는 것에 충격받았다.
두번째 코드보고 짠 경우는 이렇다
a=input()
li=['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ']
lis=[]
p=0
for i in li:
for ii in i:
for k in a:
if ii==k:
p=p+(li.index(i)+3)
print(p)
걸린 시간은 동일하지만 훨씬 짧다.
가끔 나의 무지함에 자증이난다.. 껄껄껄
'알고리즘 > 백준-Python' 카테고리의 다른 글
[Python]백준 3052번: 나머지 (0) | 2021.11.24 |
---|---|
[Python] 백준 1173번 : 운동 (0) | 2021.11.23 |
[Python]백준 1159번 : 농구경기 (0) | 2021.11.23 |
[Python]백준 1075번:나누기 (0) | 2021.11.22 |
백준 2577번: 숫자의 개수 (0) | 2021.11.15 |