본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python 기초 100제] 6088번 : [기초-종합] 수 나열하기1

by 빛밤하늘 2021. 8. 6.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

 

[기초-종합] 수 나열하기1(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

 

 

 

 

 

 

 

주의해야 할 점

이 문제에서는 입력한 숫자들을 공백으로 분리할 때, split(' ')을 사용하지마세요.

잘못된 풀이 결과가 나옵니다.

split()을 사용하세요.

 

저처럼 등차수열 공식을 이용해서 푼다면 등차수열 공식을 기억하고 있어야합니다.

등차수열 공식

 

등차수열 공식이 기억나지 않는다면 반복문으로도 쉽게 풀 수 있습니다.

 

 

 

생각한 풀이 과정

  1. 시작 값 a, 등차의 값 d, 몇 번째 수인지를 의미하는 정수 n을 공백을 두고 입력합니다. 각각 정수형으로 변환하고 변수 a, d, n에 넣어줍니다.
  2. 등차수열 공식에 맞게 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()을 사용해야겠습니다...

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글