Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 빅데이터
- 토이프로젝트
- 리눅스마스터 2급 2차
- SQL 정리
- 자바
- 엘라스틱서치
- 스프링
- 위클리챌린지
- 데이터프로그래밍
- 파이썬
- 백준
- 프로그래밍
- 알고리즘
- 문제풀이
- 스프링부트
- 필기
- 스파크
- 코딩테스트
- 모의해킹
- 오라클
- 이클립스
- SQL
- 해킹실습
- MySQL
- SQL 문법
- 데이터베이스
- c언어
- 프로그래머스
- 기초
- 문법
Archives
- Today
- Total
개발일기
백준 1312번 파이썬 풀이 : 소수 본문
반응형
문제 링크 : https://www.acmicpc.net/problem/1312
1312번: 소수
피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.
www.acmicpc.net
문제
피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.
입력
첫 번째 줄에 A와 B(1≤A, B≤100,000), N(1≤N≤1,000,000)이 공백을 경계로 주어진다.
출력
A÷B를 했을 때, 소숫점 아래 N번째 수를 출력한다.
문제 풀이
# 처음 문제풀이 (런타임 에러)
# 나누기 한 결과값을 .(소수점) 을 기준으로 문자열을 잘라 아래 부분만 새로운 변수에 저장한다.
# 해당 변수에서 N-1 번째의 배열을 출력한다.
1
2
3
4
5
6
|
A, B, N = map(int, input().split())
C, D = str(A / B).split(".")
if N-1 > len(D):
print(0)
else:
print(int(D[N - 1]))
|
cs |
# 런타임 에러가 난다.
# 배열의 index 관련 런타임 에러가 나서 소수점의 길이와 N의 길이를 비교하여 넘을 경우 0을 출력하게 했다.
# 역시 틀렸다.
이유를 아시는 분은 댓글 부탁드립니다..
# 두 번째 풀이
# 수학적으로 접근을 해야할 것 같아 입력한 n-1 만큼 반복을 한다.
# 반복은 a * 10 % b 를 a에 담으며 반복한다.
1
2
3
4
5
|
a, b, n = map(int, input().split())
a %= b
for i in range(n-1):
a = (a*10) % b
print((a*10) // b)
|
cs |
수학적으로 접근하면 문제를 맞출 수 있다.
아직까지 첫 번째 방법이 틀린 반례를 찾지 못했다..
반응형
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
백준 1003번 파이썬 풀이 : 피보나치 함수 (3) | 2021.08.22 |
---|---|
백준 1764번 파이썬 풀이 : 듣보잡 (4) | 2021.08.20 |
백준 11653번 파이썬 풀이 : 소인수 분해 (0) | 2021.08.18 |
백준 1157번 파이썬 풀이 : 단어 공부 (2) | 2021.08.14 |
백준 5622번 파이썬 풀이 : 다이얼 (7) | 2021.08.13 |
Comments