1. 다이얼
5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
www.acmicpc.net

#다이얼
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을 이용해서 비교하는 것을 보게 되었다.!
참고한 사이트!) 꾸벅
(파이썬) 백준 알고리즘 5622번 다이얼
문제 풀이 (Python) 1 2 3 4 5 6 7 8 dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] a = input() ret = 0 for j in range(len(a)): for i in dial: ..
j-remind.tistory.com
2. 손익분기점
1712번: 손익분기점
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와
www.acmicpc.net

#손익분기점 #시간 초과
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))