반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. readline과 int나 float를 사용하는 입력 방식
readline을 사용해서 입력할 때는 맨 끝에 \n이 붙어서 입력됩니다.
하지만, 입력한 값을 int나 float으로 처리해 정수, 실수형으로 만들어 줄 때는
굳이 \n을 떼기 위해 rstrip을 사용할 필요가 없습니다.
숫자 형태를 만들어줄 때 자동으로 사라집니다.
num = int(sys.stdin.readline())
2. 일의 자리 숫자 구하기
어떤 수의 일의 자리 숫자만 구하기 위해서는 단순히 10으로 나눈 나머지를 구하면 됩니다.
예제 설명
1. 첫 번째 예제
- 입력
35
- 출력
4
- 설명
입력한 n은 35입니다.
1부터 35까지 수 중 맨 마지막 자리가 1인 숫자는 1, 11, 21, 31입니다.
맨 마지막 자리에가 1인 숫자는 4개이므로 4를 출력합니다.
생각한 풀이 과정
1 <= n <= 1,000,000인 n을 입력합니다.
1부터 n까지 숫자 중 맨 마지막 자리가 1인 숫자의 개수를 저장할 변수 last_one_cnt를 선언하고, 0으로 초기화합니다.
1부터 n까지 반복하는 반복문을 만듭니다.
현재 숫자의 맨 마지막 자리가 1이라면, 즉 현재 숫자를 10으로 나누었을 때 나머지가 1이라면,
1부터 n까지 숫자 중 맨 마지막 자리가 1인 숫자의 개수를 저장하는 변수 last_one_cnt에 1을 더해줍니다.
반복문이 끝나면 1부터 n까지 숫자 중 맨 마지막 자리가 1인 숫자의 개수인 last_one_cnt의 값을 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# n을 입력합니다.
# 1 <= n <= 1,000,000
# int형으로 변환합니다.
n = int(stdin.readline())
# 1부터 n까지의 수 중 맨 마지막 자리가 1인 수의 개수를 저장할 변수를 선언합니다.
# 0으로 초기화합니다.
last_one_cnt = 0
# 1부터 n까지 반복해봅니다.
for num in range(1, n + 1):
# 현재 숫자의 마지막 숫자가 1이라면, 즉, 현재 숫자를 10으로 나누었을 때 나머지가 1이라면
if num % 10 == 1:
# last_one_cnt에 1을 더해줍니다.
last_one_cnt += 1
# 맨 마지막 자리가 1인 수의 개수인 last_one_cnt의 값을 출력합니다.
print(last_one_cnt)
제출 결과
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
※ 공감 버튼❤과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍
반응형
댓글