정수 내림차순으로 배치하기

  • sorted 실행 후 생성된 문자열 리스트를 join 함수를 통해서 문자열로 변경했다.
def solution(n):
    n_str = "".join(sorted(str(n), reverse = True))
    return int(n_str)

 

행렬의 덧셈

  • zip 함수를 차례로 사용해 행렬의 덧셈을 구현했다.
def solution(arr1, arr2):
    # 전개 순서 : [[1, 2], [2, 3]] // [[3,4], [5,6]] => [1,2], [3,4] => [4, 6]
    result = [[c + d for c, d in zip(a, b)] for a, b in zip(arr1, arr2)]
    return result

 

자연수 뒤집어 배열로 만들기

  • 숫자 각 성분을 list에 넣기 위해선 str로의 변환이 필요하다.
def solution(n):
    # int를 list에 넣기 위해서 str로 변환 -> map으로 다시 int로 변환
    n_reverse = list(map(int, str(n)))[::-1]
    return n_reverse

 

이상한 문자 만들기

def toWeirdCase(s):
    return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a \
    in enumerate(x)]), s.split(" ")))
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

약수의 합

  • 약수와 곱해진 다른 수도 약수이다.
def solution(n):
    # n = 0인 경우도 존재
    div_list = []
    for i in range(1, int(n ** 0.5) + 1):
        if n % i == 0:
            div_list.append(i)
            if i != n // i:
                div_list.append(n // i)
                
    return sum(div_list)

 

시저 암호

def caesar(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)
    # 주어진 문장을 암호화하여 반환하세요.

 

문자열 다루기 기본

def alpha_string46(s):
    return s.isdigit() and len(s) in (4, 6)

 

문자열 내 p와 y의 개수

  • [ic]count[/ic] 함수
def solution(s):
    s = s.lower()
    return s.count("p") == s.count("y")

 

3진법 뒤집기

  • n진법 표현 : n으로 나눈 나머지를 역으로 나열
  • n진법 수 -> 10진법 : [ic]int(,n)[/ic]
def to_ternary(n):
    ternary = ""
    while n:
        q, r = divmod(n, 3)
        n = q
        ternary += str(r)
    
    return ternary[::-1]

def solution(n):
    n_t = to_ternary(n)[::-1]
    return int(n_t, 3)

 

완주하지 못한 선수

  • [ic]Counter[/ic] 끼리는 연산이 가능
from collections import Counter

def solution(participant, completion):
    p_list = Counter(participant)
    c_list = Counter(completion)
    
    result = list(map(lambda x : x, p_list - c_list))[0]
    
    return result