545
문제 해설
Difficulty : *1000 (Math)
세 변수 중 두 개 이상 1일 경우를 모두 카운트하여 출력하는 문제입니다.
풀이
첫째줄에 테스트 케이스 개수가 주어지고 해당 수만큼 반복하여 세 변수가 입력됩니다. 각 줄마다 1이 두 개 이상이면 출력할 수를 1씩 증가시키고 마지막에 출력합니다.
코드
C
#include <stdio.h>
int main (){
int n, i, a, b, c, sum = 0;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d %d %d", &a, &b, &c);
if(a==1){
if(b==1 || c==1){
sum++;
}
}
else if(b==1 && c==1){
sum++;
}
}
printf("%d", sum);
return 0;
}
C++
#include <iostream>
int main() {
int n, sum = 0;
bool a, b, c;
std::cin >> n;
for(int i = 0; i < n; i++){
std::cin >> a >> b >> c;
if((a && b) || (b && c) || (c && a)){
sum++;
}
}
std::cout << sum;
return 0;
}
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import java.util.Scanner; public class Main{ public static void main(String []args){ int n, sum = 0 ; boolean a, b, c; Scanner sc = new Scanner(System.in); n = sc.nextInt(); for ( int i = 0 ; i < n; i++){ a = (sc.nextInt() != 0 ); b = (sc.nextInt() != 0 ); c = (sc.nextInt() != 0 ); if ((a && b) || (b && c) || (c && a)){ sum++; } } System.out.println(sum); } } |
Python
1 2 3 4 5 6 7 | n = int ( input ()) sum = 0 for i in range (n): a, b, c = map ( int , input ().split()) if (a and b) or (b and c) or (c and a): sum + = 1 print ( sum ) |
문제 출처
https://codeforces.com/contest/231/problem/A