항상 마지막 답안이 정답입니다. 참고해주세요. 시행착오 과정을 제가 나중에 보려고 이렇게 작성했습니다.
1712: 손익분기점
# 1712: 손익분기점
'''
1. 판매 대수 상관없이 고정비용 A
2. 가변비용 B
3. 책정된 노트북 가격 C
4. X = 노트북 대수
5. 총수입(C*X) > 총 비용(A+X*B)
6. 5번 조건이 성립할때 X 반환
7. 손익 분기점이 존재하지 않는 경우는..?
CX = A + BX
A < (B-C)X
A / (B-C) < X 인 경우
'''
import sys
A, B, C = map(int, sys.stdin.readline().split())
X = 0 # 노트북 대수
while True :
if A / (B-C) < X :
print(-1)
break
else :
if A+B*X < C*X :
print(X)
break
else :
X += 1
continue
## 다시풀기, B가 C보다 크면 손익분기점이 없어
import sys
A, B, C = map(int, sys.stdin.readline().split())
X = 0 # 노트북 대수
while True :
if B >= C :
print(-1)
break
else :
if A+(B*X) < C*X :
print(X)
break
else :
X += 1
### 시간초과 해결한 최종 답안
import sys
A, B, C = map(int, sys.stdin.readline().split())
if B >= C :
print(-1)
else :
print(A // (C-B) + 1)
2292: 벌집
# 2292: 벌집
import sys
N = int(input())
sum = 2 # summation
count = 1
while True:
if N == 1:
print(1)
break
elif sum <= N :
sum = sum + (6*count)
count += 1
else :
print(count)
break
1193: 분수 찾기
# 1193: 분수 찾기
'''
1. 짝수 줄은 분자가 작은 것부터 (또는 분모가 큰 것부터)
2. 홀수 줄은 분모가 작은 것부터 (또는 분자가 큰 것부터)
'''
X = int(input())
sum = 0
i = 1 # 대각선 기준 i번째 줄 ,i=1 이면 첫번째 줄이라고 생각.
while True :
sum = sum + i
i += 1
if X == 1:
print(1,'/',1, sep='')
break
elif X <= sum :
index = i-1 # 몇번째줄
last_index = sum-(i-1) # 직전줄 마지막 번째 숫자 위치
line_index = X-last_index # 해당 줄에서 몇번째 값인지?
if index % 2 == 1 : # 대각선 기준 홀수번째 있는 숫자라면? -> 분모가 1부터 시작
print(index-(line_index-1),'/',line_index, sep='')
break
else : # 대각선 기준 짝수번째 있는 숫자라면?
print(line_index,'/',index - (line_index - 1), sep='')
break
'매일매일 (Everyday)' 카테고리의 다른 글
[BOJ] - 재귀 - (1) - Python (0) | 2021.12.08 |
---|---|
[BOJ] - 기본 수학 1 - (2) - Python (0) | 2021.12.06 |
[BOJ] - 문자열 - (2) - Python (0) | 2021.12.02 |
[BOJ] - 문자열 - (1) - Python (0) | 2021.12.01 |
[BOJ] - 함수 - Python (0) | 2021.11.30 |