홍우진의 개발 일기장
[백준] 17269번: 이름궁합 테스트 / 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/17269
풀이 코드
al = {'A':3,'B':2,'C':1,'D':2,'E':4,'F':3,'G':1,'H':3,'I':1,'J':1,'K':3,'L':1,'M':3,'N':2,'O':1,'P':2,'Q':2,'R':2,'S':1,'T':2,'U':1,'V':1,'W':1,'X':2,'Y':2,'Z':1}
n, m = map(int,input().split())
a, b = input().split()
new = []
for i in range(min(n,m)): #['L', 'M', 'E', 'I', 'E', 'Y', 'S', 'A', 'I', 'W', 'Y', 'A', 'U', 'K', 'N', 'I']
new += a[i] + b[i]
if n > m: #뒤에 열 추가
new += a[min(n,m):]
else:
new += b[min(n,m):]
su = []
for i in new: #수로 변경
su.append(al[i])
while len(su) > 2:
cnt = len(su)
for i in range(cnt-1):
if su[i]+su[i+1] >= 10: #수가 10을 넘을경우 일의자리만
su.append(int(str(su[i]+su[i+1])[1]))
else:
su.append(su[i]+su[i+1])
su = su[cnt:] #이전 수들 삭제
print(str(int(str(su[0])+str(su[1])))+'%')
코드 해석
미리 알파벳에 숫자가 매핑된 딕셔너리를 만들어서 사용하였다.
먼저 이름이 남기 전 글자까지 번갈아서 넣어 준 뒤,
뒤에 나머지를 넣어준다.
그 후 숫자로 바꿔준다.
그리고 배열의 수들을 더해서 뒤에 추가해준 뒤
앞부분을 삭제한다.
배열의 수가 두 자리 수가 되면 끝.
체감 난이도: ★★☆☆☆
복잡했다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1076번: 저항/ 파이썬 (0) | 2025.02.21 |
---|---|
[백준] 2622번: 삼각형만들기 / 파이썬 (0) | 2025.02.20 |
[백준] 1356번: 유진수 / 파이썬 (0) | 2025.02.18 |
[백준] 11557번: Yangjojang of The Year / 파이썬 (0) | 2025.02.17 |
[백준] 3135번: 라디오 / 파이썬 (0) | 2025.02.16 |
Comments