문제 해설
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
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
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)