Algorithm/문제풀이

[Python][Programmers] 기초문제_12930, 12928, 12926, 12925, 12922

Deveun 2021. 5. 6. 23:58

- [12930] 이상한 문자 만들기

def solution(s):

    isUpper = False
    li = list(s)
    for i in range(len(li)) :
        isUpper = not isUpper if s[i] != ' ' else False
        li[i] = li[i].upper() if isUpper else li[i].lower()
        
    return ''.join(li)

 --> str.lower() 소문자 || str.upper() 대문자 

 

- [12928] 약수의 합

def solution(n):
    
    li = filter(lambda x: n%x == 0, list(range(1,n+1)))
    return sum(li)

--> filter로 약수찾기

 

- [12926] 시저 암호

def solution(s, n):
    
    st = []
    for ch in list(s):
        res = ord(' ')
        if ord('a') <= ord(ch) and ord(ch) <= ord('z') : 
            res = (ord(ch) + n - 26) if ord(ch) + n > ord('z') else ord(ch) + n
        elif ord('A') <= ord(ch) and ord(ch) <= ord('Z') :
            res = (ord(ch) + n - 26) if ord(ch) + n > ord('Z') else ord(ch) + n
        st.append(chr(res))
    
    return ''.join(st)

--> ord() 문자->유니코드 / chr() 유니코드 -> 문자

 

- [12925] 문자열을 정수로 바꾸기

def solution(s):
    
    # s = int(s[1:]) * -1 if s[0] == '-' else int(s)
    # >>> int() 함수를 사용하면 문자열의 '-' 도 자동으로 인식을 한다! 
    s = int(s)

    return s

 

- [12922] 수박수박수박수박수박수?

def solution(n):
    
    ### 풀이 1
    # answer = ''
    # for i in range(n):
    #     answer += '수' if i%2 == 0 else '박'
    
    ### >>> 다른사람 풀이 참고
    answer = '수박'* (n//2) + '수' * (n%2)
    

    return answer