728x90
반응형
문제풀이 GitHub
https://github.com/Seokii/baekjoon
문제링크
https://www.acmicpc.net/problem/11575
풀이
dic = {'A':0, 'B':1, 'C':2, 'D':3, 'E':4, 'F':5, 'G':6, 'H':7,
'I':8, 'J':9, 'K':10, 'L':11, 'M':12, 'N':13, 'O':14, 'P':15,'Q':16,
'R':17, 'S':18, 'T':19, 'U':20, 'V': 21, 'W':22, 'X':23, 'Y':24, 'Z':25}
reverse_dic = dict(map(reversed, dic.items()))
t = int(input())
for _ in range(t):
a, b = map(int, input().split())
start = list(input())
end = ''
for i in start:
x = dic[i]
encryption = (a * x + b) % 26
end += reverse_dic[encryption]
print(end)
딕셔너리를 정의하고 문제를 해결했습니다.
dict(map(reversed, 딕셔너리.items())) 를 통해 딕셔너리의 Key와 Value를 역으로 만들었습니다.
테스트 케이스를 t로 선언 받고, for문으로 테스트 케이스만큼 반복합니다.
각 테스트 케이스에서는
암호의 식에 들어갈 a와 b를 입력받고 start변수에 암호화시킬 문자열을 입력받습니다.
리스트로 받은 문자열을 for문으로 암호화 처리를 진행합니다.
문자열에 대한 딕셔너리의 value값을 x로 받아 a, b, x를 사용해 공식에 대입합니다.
나온 결과값을 end 변수에 reverse_dic(기존의 딕셔너리의 key와 value값을 바꾼 딕셔너리)을 통해 숫자를 다시 문자열로 바꾼후 추가합니다.
for문을 통해 모든 과정이 끝나면 end 변수를 출력해 결과를 확인합니다.
728x90
반응형
'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글
백준 11134번 Python / 수학, 사칙연산 (0) | 2022.04.11 |
---|---|
백준 16471번 Python / Greedy (0) | 2022.03.24 |
백준 17349번 Python / 구현 (0) | 2022.03.21 |
백준 10845번 Python / Queue(큐) (0) | 2022.03.20 |
백준 17251번 Python / Dynamic Programming (0) | 2022.03.19 |
댓글