손익분기점이 어떻게 형성되는지 하나의 식으로 나타내보면 A + nB A/(C-B) 보다 큰 자연수 주의해야 할 점은 C = B가 되어 0으로 나누는 에러가 발생하지 않도록 하는 것! import sys A, B, C = map(int, sys.stdin.readline().split()) if C != B: if A/(C - B)
뭐야 쉽네~ 하고 V에 도달할 때까지 루프 돌렸다간 달팽이가 나무에 오를때까지 끝나지 않는다..^^.. 999999901을 기다릴 수도 있다..^^ 다시 생각해보자 달팽이는 하루에 A - B 만큼 올라간다. 그리고 달팽이가 올라가야 하는 길이는 V - B 이다. (마지막에는 미끄러지지 않기 때문에 B만큼을 줄여야 한다.) 올라가야 하는 길이를 하루에 올라가는 길이로 나누고, 나머지를 본다. 나머지가 0이 아니라면 하루가 더 필요한 것이다. import sys A, B, V = map(int, sys.stdin.readline().split()) if (V - B) % (A - B) == 0: print((V - B) // (A - B)) else : print(((V - B) // (A - B)) + 1)
들어오는 정보를 나이순으로 정렬한 다음 나이가 같으면 들어온 순서대로 출력하는 문제! lambda 정렬을 이용해 풀었다 import sys N = int(input()) A = [] for i in range(N): a, b = map(str, sys.stdin.readline().split()) # 나이와 이름을 먼저 a, b에 저장하고 a = int(a) # a는 int로 변환해주고 A.append((a, b)) # A에 (a, b) 형태로 저장 A.sort(key=lambda x: (x[0])) # A안의 리스트들을 x[0] 즉 나이를 이용해 정렬해준다 for i in A: print(i[0], i[1])
0, 0, 0이면 break 숫자 세 개 주어지면 피타고라스 법칙 되는지만 확인하면 끝! import sys while True: A = list(map(int, sys.stdin.readline().split())) A.sort() if A[0] == A[1] == A[2] == 0: break else: if A[2] ** 2 == A[0] ** 2 + A[1] ** 2: print('right') else: print('wrong')
벌집처럼 육각형으로 이루어져 있는 칸에 적힌 수까지 가려면 몇 개의 방을 지나야 하는지 출력하는 문제 지나가야 하는 방의 개수 2개 : 2, 3, 4, 5, 6, 7 - 6개 지.방.개. 3개: 8, 9, 10, 11, ... 19 - 12개 지.방.개. 4개: 20 ~ 37 - 18개 6씩 늘어난다 X = int(input()) a = 1 six = 6 cnt = 1 while X > a : cnt += 1 a = a + six six += 6 print(cnt) X는 주어진 수 a는 지.방.개.가 cnt개일 때 할당되는 수 중 가장 큰 수 (예를 들어, cnt = 2이고 a = 7일 때 2~7까지는 지.방.개.가 2개(=cnt)이다.) six는 늘어나는 수의 개수.. 즉 6, 12, 18 이렇게 늘어..
주어진 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 알아보는 문제 하나하나 확인해봐야하는 줄 알았는데, 미리 크로아티아 알파벳에 해당하는 문자열을 저장해놓고 input으로 받은 문자열 안에 포함되어있는지 확인해보면 되는 문제였다 X = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] # 크로아티아 알파벳 저장 T = input() for i in X: # 크로아티아 알파벳에 해당하는 문자열이 나오면 T = T.replace(i, '0') # 기존 문자열 -> 문자 한 개로 교체 print(len(T))