1. 문자열 밀기

문자열 “hello”에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 “ohell”이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 AB가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 < A의 길이 = B의 길이 < 100
  • A, B는 알파벳 소문자로 이루어져 있습니다.

코드 작성

def solution(A, B):
    return (B * 2).find(A)


2. 종이 자르기

머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.

정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 < M, N < 100
  • 종이를 겹쳐서 자를 수 없습니다.

코드 작성

def solution(M, N):
    # 가로를 먼저 자르고 세로방향으로 자른다.
    # 가로는 칸수의 -1 만큼 자른다.
    # 세로는 가로의 칸수 * (세로의 칸수 - 1)만큼 자른다.
    width = M - 1
    length = M * (N - 1)
    return (M * N) - 1


3. 연속된 수의 합

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 numtotal이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

제한사항

  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

코드 작성

def solution(num, total):
    num_list = list(range(-1000, num*1000))

    for i in range(0, len(num_list)):
        if sum(num_list[i:i+num]) == total:
            return num_list[i:i+num]


4. 다음에 올 숫자

등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 2 < common의 길이 < 1,000
  • -1,000 < common의 원소 < 2,000
    • common의 원소는 모두 정수입니다.
  • 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
  • 등비수열인 경우 공비는 0이 아닌 정수입니다.

코드 작성

def solution(common):
    # 등차수열
    diff = common[1] - common[0]
    if diff == common[2] - common[1]:
        return common[-1] + diff
    
    seq = common[1] / common[0]
    if seq == common[2] / common[1]:
        return common[-1] * seq


🙋🏻‍♀️ 프로그래머스 Lv.0 문제 풀기 완료

programmers


👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기