728x90
📚문제
📝풀이
# 1333번 부재중 전화(Bronze II)
n,l,d = map(int,input().split())
song = [False] * ((n*l)+(n-1)*5) # 앨범 총 길이
len(song)
for i in range(0,len(song),l+5): # 노래 시작시간
for j in range(i,i+l): # 노래가 시작되고 재생되는 시간
song[j] = True
for k in range(0,len(song),d):
if song[k]==False:
print(k)
break
else: print(k+d)
단순하게 대입해서 풀어나가다보면
풀 수 있을 줄 알았는데 생각보다 까다롭다
보통 풀이들이 노래의 총길이를 배열로 저장하는 방법을 사용해서
배열 풀이들 중 가장 잘 설명되어있는 풀이를 참고 하였다
참고링크 출처 : https://velog.io/@vkdldjvkdnj/boj01333
풀이✏️
노래 길이만큼
배열을 생성하고 노래가 재생되는 시간은 True로 할당
노래가 재생되지 않는 시간은 False
그 다음 배열에서 벨소리에 해당하는 인덱스가 False(노래가 재생되지 않는경우) 일 경우
그때의 인덱스 출력
만약 노래가 모두 끝날때까지
벨소리가 노래 재생시간에만 나온다면
앨범 길이에서 가장 마지막에 울렸던 벨소리 시간 d에
d값을 한 번더 추가해서 출력
+ 브론즈 문제치고 너무 어려웠던 것 같다.. 다음에 다시 비슷한 문제를 풀게되거나
같은 문제를 다시 푼다해도 풀이 방법을 생각해낼 수 있을 지 의문이다🧐
체크해놓고 다음에 다시 풀어봐야겠
728x90
'Python(알고리즘,문제풀이) > BOJ(Bronze II)' 카테고리의 다른 글
백준 / 1408번 / 24 / Python / 수학,구현,사칙연산 (1) | 2024.01.06 |
---|---|
백준 / 1371번 / 가장 많은 글자 / Python / 구현, 문자열, stdin.read() (0) | 2024.01.04 |
백준 / 1297번 / TV크기 / Python / 피타고라스정리 (0) | 2024.01.04 |
백준 / 1252번 / 이진수 덧셈 / Python / 수학,사칙연산 (0) | 2024.01.04 |
백준 / 1173번 / 운동 / Python / 시뮬레이션 (0) | 2024.01.02 |