본문 바로가기
TIL

99클럽 22번째 TIL( 프로그래머스 파이썬 - 시저암호,제일 작은 수 제거하기)

by double-step 2024. 4. 15.
728x90
반응형
SMALL

99클럽 22번째 TIL

비기너 첫번째 문제

시저 암호

문제 설명
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.

제한 조건
공백은 아무리 밀어도 공백입니다.
s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다.
s의 길이는 8000이하입니다.
n은 1 이상, 25이하인 자연수입니다.
입출력 예
s n result
"AB" 1 "BC"
"z" 1 "a"
"a B z" 4 "e F d"

정답

def solution(s, n):
    s = list(s)
    for i in range(len(s)):
        if s[i].isupper():
            s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
        elif s[i].islower():
            s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
 
    return "".join(s)
 

풀이
대문자일때와 소문자일때를 구별해서 적용하였고, chr()은 아스키 코드를 문자로 변경해주는 함수이다.
또한 ord()는 문자를 아스키 코드로 변경해주는 함수이다.

비기너 문제 두번째

문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

제한 조건
arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
입출력 예
arr return
[4,3,2,1] [4,3,2]
[10] [-1]

정답

def solution(arr):
    answer = arr[:]
    if len(arr) < 2:
        return [-1]
    else:
        answer.remove(min(arr))
        return answer

풀이
파이썬 리스트 내에서의 min() 함수를 이용하면 되었다.

728x90
반응형
LIST