[프로그래머스 Python] 코딩테스트 입문 Day 25 - 시뮬레이션, 조건문, 수학
1. 문자열 밀기
문자열 “hello”에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 “ohell”이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A
와 B
가 매개변수로 주어질 때, 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입니다. 두 정수 num
과 total
이 주어집니다. 연속된 수 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,000common
의 원소는 모두 정수입니다.
- 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
- 등비수열인 경우 공비는 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 문제 풀기 완료
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기