[CodeUp 기초 100제] 6090번 풀이 with 파이썬(python)

Jeony·2021년 9월 15일
0

codeup 기초 100제

목록 보기
90/98
post-thumbnail

문제

종합

어떤 규칙에 따라 수를 순서대로 나열한 것을 수열(sequences)이라고 한다.

예를 들어
1 -1 3 -5 11 -21 43 ... 은
1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.

이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다.
"그럼.... 13번째 나오는 수는 뭘까?"

영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다...
그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,
n번째 수를 출력하는 프로그램을 만들어보자.

입력 예시

1 -2 1 8

출력 예시

-85

답안

모델 답안

a,m,d,n=input().split()
a=int(a)
m=int(m)
d=int(d)
n=int(n)
s=a
for i in range(2, n+1):
    s=s*m+d
print(s)

내 답안

a, m, d, n = input().split()
a, m, d, n = int(a), int(m), int(d), int(n)
goal_num = a
count = 2

while count <= n:
    count += 1
    goal_num = goal_num * m + d
print(goal_num)

or

a, m, d, n = input().split()
a, m, d, n = int(a), int(m), int(d), int(n)
goal_num = a

for i in range(2, n+1):
    goal_num = goal_num * m + d
print(goal_num)

풀이

이번 문제도 이전 문제와 같은 방식이예요.
다른 점은 연산이 하나였는데 두개로 늘어났네요..🤔
풀이가 궁금하신 분들은 밑에 이전 문제 링크로 들어가보세요!😃

이전 문제 풀이 보기!


input(): 프롬프트를 띄워서 사용자의 입력 받을 수 있게 해준다.
(단, 입력 받은 것은 문자열로 저장된다. print(type()))으로 type() 괄호 안에 변수를 넣고 찍으면 정수인지, 문자열인지, 무슨 타입인지 확일 할 수 있다!)

int(n): 위의 input()에서 말했듯이 input으로 받은 값은 문자열로 저장된다.
산술을 하기 위해, 문자열을 정수로 변환시켜주는 int()를 써서 변환시켜준다.

for문: 반복을 데이터가 남을 때까지 밑에 내용 계속 반복 실행!
for i in 데이터:
(들여쓰기칸) 실행문

ex)

for i in [1, 2 ,3]:
    print(i)
출력: 1
     2
     3

데이터에는 iterable이 들어갈 수 있다.

range(): 괄호 안에 들어가는 숫자만큼의 수열을 표현해준다.
range(3) -> 0, 1, 2 (0부터 3직전까지 표현)
range(1, 3) -> 1, 2 (1부터 시작해서 3직전까지 표현)
range(1, 3, +2) -> 1 (1부터 시작해서 2씩 늘려가서 3직전까지 표현. (1 + 2는 3이므로 3직전까지 표현))

while문: 조건이 True면 밑에 내용 실행!
while 조건식:
(들여쓰기칸) 실행문

while문은 조건식이 계속 맞도록 해주면 무한으로 반복할 수 있다!
ex)

while True
    print("ㅎㅎ")

멈추지 않는 이상 계속 반복

print(): 괄호 안의 내용을 출력!

profile
알고리즘으로 문제를 해결하자 (ʘ言ʘ╬)

0개의 댓글