반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
주의해야 할 점
이 문제에서는 입력한 숫자들을 공백으로 분리할 때, split(' ')을 사용하지마세요.
잘못된 풀이 결과가 나옵니다.
split()을 사용하세요.
저처럼 등차수열 공식을 이용해서 푼다면 등차수열 공식을 기억하고 있어야합니다.
등차수열 공식이 기억나지 않는다면 반복문으로도 쉽게 풀 수 있습니다.
생각한 풀이 과정
- 시작 값 a, 등차의 값 d, 몇 번째 수인지를 의미하는 정수 n을 공백을 두고 입력합니다. 각각 정수형으로 변환하고 변수 a, d, n에 넣어줍니다.
- 등차수열 공식에 맞게 n번째 수를 계산하고 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 시작 값 a, 등차의 값 d, 몇 번째 수인지를 의미하는 정수 n을 공백을 두고 입력합니다.
# 각각 정수형으로 변환합니다.
a, d, n = map(int, stdin.readline().split())
# 등차수열 공식을 이용하여 n번째 수를 구하고 출력합니다.
# 등차수열 공식 : an = a1 + (n-1)d
print(a + (n - 1) * d)
제출 결과
느낀 점
위의 결과 사진을 보면 잘못된 풀이 결과가 많습니다.
매우 짧은 코드인데 도대체 어디가 틀린지 알 수가 없었습니다.
심지어 문제의 예제와 틀린 테스트 케이스에서의 입력 모두 파이참에서 만든 코드에서는 다 잘 나왔고,
다른 사람들의 풀이를 찾아보니 아예 제가 만들었던 반복문 코드도 있었습니다.
다른 부분은 제가 문자열을 공백으로 나눌 때 split()말고 split(' ')을 사용했던 것입니다.
이 때까지 다른 알고리즘 문제를 풀 때는 아무런 문제가 없었는데
이거 하나 찾느라 고생했습니다...
저도 이제 공백으로 구분해서 입력할 때 split()을 사용해야겠습니다...
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글