Over the limit
카이사르 암호 함수 본문
1. 문제 풀이에 도움되는 함수 없이 (ord,chr 없이)
def encrypt(value, padding):
s = "abcdefghijklmnopqrstuvwxyz"
b = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
answer = ''
for char in value :
for j in range(len(s)):
if char==s[j]:
index=j+padding
answer+=s[index%26]
elif char==b[j]:
index=j+padding
answer+=b[index%26]
else:
answer+=''
return answer
def decrypt(value, padding):
s = "abcdefghijklmnopqrstuvwxyz"
b = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
answer = ''
for char in value :
for j in range(len(s)):
if char==s[j]:
index=j-padding
answer+=s[index%26]
elif char==b[j]:
index=j-padding
answer+=b[index%26]
else:
answer+=''
return answer
2. ord, chr 사용
def encrypt(value, padding):
s = "abcdefghijklmnopqrstuvwxyz"
b = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
answer = ''
for char in value :
if char in s:
answer+=chr(((ord(char)-ord('a')+padding)%26)+ord('a'))
elif char in b:
answer+=chr(((ord(char)-ord('A')+padding)%26)+ord('A'))
else:
answer+=' '
return answer
def decrypt(value, padding):
s = "abcdefghijklmnopqrstuvwxyz"
b = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
answer = ''
for char in value :
if char in s:
answer+=chr(((ord(char)-ord('a')-padding)%26)+ord('a'))
elif char in b:
answer+=chr(((ord(char)-ord('A')-padding)%26)+ord('A'))
else:
answer+=' '
return answer
3. 중복 코드 제거
def encrypt(value, padding):
value=list(value)
answer=''
for i in range(len(value)) :
if value[i].islower():
answer+=chr((ord(value[i])-ord('a')+padding)%26+ord('a'))
elif value[i].isupper():
answer+=chr((ord(value[i])-ord('A')+padding)%26+ord('A'))
else: answer+=' '
return answer
def decrypt(value, padding):
value=list(value)
answer=''
for i in range(len(value)) :
if value[i].islower():
answer+=chr((ord(value[i])-ord('a')-padding)%26+ord('a'))
elif value[i].isupper():
answer+=chr((ord(value[i])-ord('A')-padding)%26+ord('A'))
else: answer+=' '
return answer
'Algorithm > Algorithm 풀이' 카테고리의 다른 글
[JAVA] 백준 11047 - 그리디 알고리즘 (0) | 2021.08.22 |
---|---|
[JAVA] 백준 2798 블랙잭 (0) | 2021.07.24 |
[JAVA] 프로그래머스 - N으로 표현 (0) | 2021.07.22 |
[JAVA] 백준 2751 자바 / 병합 정렬 (0) | 2021.07.18 |
[JAVA] 백준 11720 자바/ 아스키코드/ String.charAt() 문자뽑기 사용 (1) | 2021.07.18 |