[문제]
https://www.acmicpc.net/problem/1333
[풀이]
노래가 재생되고 있는 시간과 전화를 받을 수 있는 시간을 boolean 리스트로 체크한다.
True일 경우 노래가 재생 중이고, False일 경우 전화를 받을 수 있다.
예제 입력의 경우 첫 번째 곡이 나올 때인
s = (노래 길이 5초 + 조용한 구간 5초) * 0 = 0이고 s부터 s+l인 5초. 즉 0~5초는 True로 설정한다.
두 번째 곡은 s = (5 + 5) * 1 = 10이고 10부터 15초를 True로 설정한다.
그 후 0초부터 전화벨이 울리는 d초씩 더해 해당 boolean 리스트 값이 False일 경우 break를 해 answer를 출력한다.
[코드]
if __name__ == '__main__':
n, l, d = map(int, input().split())
check = [False] * (n * l + 5 * (n - 1))
for i in range(n):
s = (l + 5) * i
for j in range(s, s + l):
check[j] = True
answer = 0
while answer < len(check):
if not check[answer]:
break
answer += d
print(answer)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1173번 운동 (0) | 2021.07.09 |
---|---|
[Python] BOJ/백준 1264번 모음의 개수 (0) | 2021.07.09 |
[Python] BOJ/백준 1284번 집 주소 (0) | 2021.07.08 |
[Python] BOJ/백준 1680번 쓰레기 수거 (0) | 2021.07.05 |
[Python] BOJ/백준 1357번 뒤집힌 덧셈 (0) | 2021.07.01 |