ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Dovelet/C++] 독서
    알고리즘/dovelet 2023. 1. 12. 20:57

    ■ 프로그램 명 : speed_reading

    K 마리의 소들이 연례 독서대회에 참가하고 있다.
    대회는 N 페이지로 이루어진 책을 읽는데 소요되는 시간을 알고자 한다.
    i 번째 소는 분 당 Si 페이지를 읽을 수 있고 , 한 번 읽을 시 집중할 수 있는 시간은 Ti 분이다.
    즉 Ti 분 읽은 후 에는 Ri 분 만큼 반드시 쉬어야 한다.
    책을 다 읽는데 필요한 소요시간(분 단위로)을 구하는게 문제이다.

    ■ 입력

    입력의 첫 수는 책의 페이지 수 N , 참가 소의 수 K 이다.
    다음 k 줄에는
    • 분당 읽을 수 있는 속도 Si
    • 지속시간 Ti
    • 휴식시간 Ri
    가 주어진다.
    K (1 ≤ K ≤ 1,000) , N (1 ≤ N ≤ 100,000) , S (1 ≤ Si ≤ 100) , Ti (1 ≤ Ti ≤ 100),Ri (1 ≤ Ri ≤ 100)

    ■ 출력

    책을 모두 읽는데 필요한 분 수를 출력한다.

    ■ 입출력 예

    입력
    10 3
    2 4 1
    6 1 5
    3 3 3

    출력
    6
    7
    7

    ■ 소스 코드

    #include <stdio.h>
    int main()
    {
    	int n, k, si, ti, ri, i, count, min, N;
    	scanf_s("%d%d", &n, &k); // 책 페이지, 참가자 수
    	for (i = 1; i <= k; i++) 
    	{
    		scanf_s("%d%d%d", &si, &ti, &ri);
    		N = 0, count = 0, min = 0;
    		for (;;)
    		{
    			if (count < ti)
    			{
    				count++, min++;
    				N += si;
    				if (N >= n) { break; } // 페이지수와 같아지거나 더 클 때 탈출
    			}
    			if (count >= ti) { count = 0, min += ri; } // 지속 시간과 같아지면 휴식시간 더함
    		}
    		printf("%d\n", min);
    	}
    
    
    	return 0;
    }

    '알고리즘 > dovelet' 카테고리의 다른 글

    [Dovelet/C++] 역 직각 삼각형 별(tri2)  (0) 2023.01.17
    [Dovelet/C++] 직각 삼각형 별(tri1)  (0) 2023.01.17
    [C++/dovelet] 우물 탈출  (0) 2023.01.12
    [C++/dovelet] 빈 병  (1) 2023.01.12
    [C++/dovelet] 인공지능 시계  (0) 2023.01.12
Designed by Tistory.