TIL_230907

Sol Lee·2023년 9월 19일
0

오늘 한 일

프로그래머스 알고리즘 문제 풀기

# 최소 직사각형

# 모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 
# 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성해주세요.

# 내 코드
못풀었음

# 다른 사람 코드 
def solution(sizes):
    # 가로세로 상관말기
    width = []
    height = []
    answer = 0
    for i in range(len(sizes)):
        width.append(max(sizes[i]))
        height.append(min(sizes[i]))
    answer=max(width)*max(height)
    return answer

## sizes에서 가로세로 상관없이 큰수와 작은수로 나누고 큰수중에 가장 큰 수, 작은 수 중에 가장 큰 수 가져오기



# 시저 암호

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

# 내 코드
def solution(s, n):
    answer = ''
    for i in s:
        if i == ' ':
            answer += i
        else:
            # 65-90 97-122
            num = ord(i)
            if num > 64 and num < 91:
                if num+n > 90:
                    answer += chr(num+n - 26)
                else:
                    answer += chr(num+n)
            if num > 96 and num < 123:
                if num+n > 122:
                    answer += chr(num+n - 26)
                else:
                    answer += chr(num+n)
                    
    return answer



# 숫자 문자열과 영단어

# 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
# 1478 → "one4seveneight"
# 234567 → "23four5six7"
# 10203 → "1zerotwozero3"
# 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. 
# s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.

# 내 코드
def solution(s):
    num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
    for key,value in num_dic.items():
        s = s.replace(key,value)
    return int(s)
profile
직업: 개발자가 되고 싶은 오레오 집사

0개의 댓글