반응형
코드포스(Codeforces) 1511A Review Site 풀이 코드
C | C++ | Java | Python
Difficulty : *800 (Greedy)
문제 해설
당신은 영화제작자이며, 첫 번째 영화를 개봉하고 관람객의 리뷰를 기다리고 있습니다. 서버는 두 개 존재하고 리뷰어는 세 종류가 있습니다. 무조건 추천을 주는 리뷰어(Case 1), 무조건 비추천을 주는 리뷰어(Case 2), 서버에 비추천이 더 많으면 비추천을 주고 그 외에는 무조건 추천을 주는 리뷰어(Case 3)입니다. 우린 리뷰어가 들어갈 서버를 맘대로 고를 수 있습니다. 최고로 얻을 수 있는 추천 수는 몇일까요?
풀이
서버가 두 개 존재하므로 비추천을 주는 리뷰어를 한 곳에, 나머지 두 케이스의 리뷰어를 다른 한 곳에 모는 방법이 최고 평점을 얻는 방법입니다. Case 3의 리뷰어는 추천과 비추천 수가 같을 땐(0 포함) 무조건 추천을 주기 때문입니다. 조건문으로 풀 수 있습니다.
코드
#include <stdio.h>
int main () {
int n = 0, m = 0, i, j, sum = 0, tmp;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &m);
for(j= 0; j< m; j++){
scanf("%d", &tmp);
if(tmp == 1 || tmp ==3){
sum+=1;
}
}
printf("%d\n", sum);
sum = 0;
}
return 0;
}
#include <iostream>
using namespace std;
int main(){
int n, m, tmp, sum=0;
cin>>n;
for(int i = 0; i < n; i++){
cin>>m;
for(int j = 0; j < m; j++){
cin>>tmp;
if(tmp==1 || tmp==3){
sum += 1;
}
}
cout<<sum<<endl;
sum = 0;
}
return 0;
}
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
for(int i = 0; i < n; i++){
int m = sc.nextInt();
for(int j = 0; j < m; j++){
int tmp = sc.nextInt();
if(tmp==1 || tmp ==3){
sum += 1;
}
}
System.out.println(sum);
sum = 0;
}
}
}
n = int(input())
sum = 0
for i in range(n):
m = int(input())
li = list(map(int, input().split(" ")))
for j in range(m):
if li[j]==1 or li[j]==3:
sum += 1
print(sum)
sum = 0
문제 출처
반응형
'Coding > CODEFORCES' 카테고리의 다른 글
[코드포스 CODEFORCES] 1538A Stone Game 풀이 코드 (C/C++/Java /Python) (0) | 2021.08.27 |
---|---|
[코드포스 CODEFORCES] 339A Helpful Maths 풀이 코드 (C/C++/Java /Python) (0) | 2021.08.25 |
[코드포스 CODEFORCES] 263A Beautiful Matrix 풀이 코드 (C/C++/Java /Python) (0) | 2021.08.03 |
[코드포스 CODEFORCES] 112A Petya and Strings 풀이 코드 (C/C++/Java /Python) (0) | 2021.08.01 |
[코드포스 CODEFORCES] 282A Bit++ 풀이 코드 (C/C++/Java /Python) (0) | 2021.07.27 |