본문 바로가기
코드업(CodeUp) 풀이/Python 기초 100제

[코드업 Python 기초 100제] - 6091. 함께 문제 푸는 날

by yewonnie 2022. 1. 26.

문제 설명

온라인 채점시스템에는 초등학생, 중고등학생, 대학생, 대학원생,
일반인, 군인, 프로그래머, 탑코더 등 아주 많은 사람들이 들어와 문제를 풀고 있는데,

실시간 채점 정보는 메뉴의 채점기록(Judge Status)을 통해 살펴볼 수 있다.

자! 여기서...잠깐..
같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?

입력

같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는,
방문 주기가 공백을 두고 입력된다. (단, 입력값은 100이하의 자연수이다.)

출력

3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력한다.

입력 예시

3 7 9

출력 예시

63

My code

a,b,c = map(int,input().split())

day = 1
while True:
    if day%a==0 and day%b==0 and day%c==0:
        break
    day += 1
print(day)

Answer

a, b, c = input().split()

a = int(a)
b = int(b)
c = int(c)

d = 1
while d%a!=0 or d%b!=0 or d%c!=0 :
  d += 1

print(d)

Code Review

3명의 사람들이 다시 모두 함께 문제를 풀게 되는 날은 각 사람들의 방문주기의 최소 공배수 입니다. 이는 다시 해석하면 3 명의 사람들이 다시 모두 함께 문제를 풀게 되는 날을 각각의 방문 주기로 나눴을 때 모두 나머지가 0이 되어야 한다는 것입니다. 따라서 반목문 안에서 만약 모두 나머지가 0이 된다면 break 를 이용하여 반목문을 빠져나가 그때까지 더한 day 를 출력하도록 해주었습니다.
모범 답안처럼 while 반복문이 만약 나머지가 모두 0이라면 종료되도록 조건식을 설정해주는 방법도 있습니다. 

댓글