1. 다이얼
#다이얼
S = input()
time = 0
dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
for i in S:
for j in dial:
if i in j:
time += dial.index(j) + 3
print(time)
하 일단 for문안으로 if i == "A" 로 or로 하나하나 해주려니 너무너무 길어졌다.
그래서 select같은 게 없나 고민해보다가, 다른 분이 위에 코드처럼 dial 리스트를 구현하고
in을 이용해서 비교하는 것을 보게 되었다.!
참고한 사이트!) 꾸벅
2. 손익분기점
#손익분기점 #시간 초과
a, b, c = map(int, input().split(' '))
point = 1
while True:
if b >= c:
point = -1
break
cost = a + point * b
money = c * point
if cost < money:
break
point += 1
print(point)
먼저, b가 c보다 크거나 같을 때, 손익분기점이 발생하지 않는다라는 사실을 인지하지 못하고 어떻게 해줘야 하나..
고민했었다.. 저렇게 if문으로 구현을 해주고 제출을 해보니 "시간 초과"가 되었다.
아무래도 필요하지 않은 while문을 사용해주어서 그런 것 같았다. (ㅠㅠ결과는 잘 나오지만 어쩔 수 없즤)
그. 래. 서! 다시 풀었다
정리! (i는 생산 대수)
A + B * i < C * i 의 최초 지점이 손익 분기점.
따라서, B >= C일 경우엔 손익 분기점이 발생하지 않음(-1)
A < (C-B) * i → A / (C-B) < i 따라서, 손익분기점이 되는 생산 대수(i)는 = A/(C-B) + 1 이 된다. ('='으로 같은 경우에는 0원으로 수익이 X → +1을 해줌)
#손익분기점_2
a, b, c = map(int, input().split(' '))
if b >= c:
print(-1)
else:
print(int(a/(c-b)+1))
반응형