31.4. 개수(COUNT) 구하기
31.4.1. 개수(COUNT; 건수, 카운트) 알고리즘
개수(COUNT) 알고리즘은 조건에 맞는 자료의 개수(횟수, 건수)를 구하는 알고리즘입니다. 다른 표현 방식으로 조건에 맞는 레코드의 횟수를 구하는 데 사용되는 구문입니다.
31.4.2. [실습] 개수(COUNT) 알고리즘 사용하기
주어진 범위의 데이터 중 주어진 조건을 만족하는 데이터의 개수를 구하는 COUNT 알고리즘을 적용해보는 예제를 만들어 봅시다.
*** 예제: 1부터 1,000까지의 정수 중 13의 배수의 개수***
코드: CountAlgorithm.cs
using System;
using System.Linq;
class CountAlgorithm
{
static void Main()
{
var numbers = Enumerable.Range(1, 1_000).ToArray();
int count = default;
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] % 13 == 0)
{
count++;
}
}
Console.WriteLine($"1부터 1,000까지의 정수 중 13의 배수의 개수: {count}");
}
}
1부터 1,000까지의 정수 중 13의 배수의 개수: 76
개수 알고리즘은 간단히 증감 연산자를 사용하여 카운트를 세는 방법으로 구할 수 있습니다.
카운트 알고리즘도 LINQ를 사용하면 다음처럼 간단히 표현할 수 있습니다.
> Enumerable.Range(1, 1000).Where(n => n % 13 == 0).Count()
76
> Enumerable.Range(1, 1000).Count(n => n % 13 == 0)
76
코드: CountAlgorithm.cs
using System.Linq;
class CountAlgorithm
{
int main(void)
{
var numbers = Enumerable.Range(1, 1_000).ToArray();
int count = default;
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] % 13 == 0)
{
count++;
}
}
printf($"1부터 1,000까지의 정수 중 13의 배수의 개수: {count}");
}
}
1부터 1,000까지의 정수 중 13의 배수의 개수: 76
import java.util.stream.IntStream;
public class CountAlgorithm {
public static void main(String[] args) {
int[] numbers = IntStream.rangeClosed(1, 1_000).toArray();
int count = 0;
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 13 == 0) {
count++;
}
}
System.out.printf("1부터 1,000까지의 정수 중 13의 배수의 개수: %d", count);
}
}
numbers = list(range(1, 1001))
count = 0
for number in numbers:
if number % 13 == 0:
count += 1
print(f"1부터 1,000까지의 정수 중 13의 배수의 개수: {count}")
const numbers = Array.from({ length: 1000 }, (_, i) => i + 1);
let count = 0;
for (let number of numbers) {
if (number % 13 === 0) {
count++;
}
}
console.log(`1부터 1,000까지의 정수 중 13의 배수의 개수: ${count}`);
예제: 1부터 1,000까지의 정수 중 13의 배수의 개수
코드: CountAlgorithm.cpp
#include <iostream>
#include <vector>
using namespace std;
class CountAlgorithm
{
public:
static void Main()
{
vector<int> numbers(1000);
for (int i = 0; i < 1000; i++)
{
numbers[i] = i + 1;
}
int count = 0;
for (int i = 0; i < numbers.size(); i++)
{
if (numbers[i] % 13 == 0)
{
count++;
}
}
cout << "1부터 1,000까지의 정수 중 13의 배수의 개수: " << count << endl;
}
};
int main()
{
CountAlgorithm::Main();
return 0;
}
1부터 1,000까지의 정수 중 13의 배수의 개수: 76
예제: 1부터 1,000까지의 정수 중 13의 배수의 개수
코드: CountAlgorithm.go
package main
import "fmt"
func main() {
var numbers [1000]int
for i := 0; i < 1000; i++ {
numbers[i] = i + 1
}
count := 0
for _, number := range numbers {
if number % 13 == 0 {
count++
}
}
fmt.Printf("1부터 1,000까지의 정수 중 13의 배수의 개수: %d\n", count)
}
1부터 1,000까지의 정수 중 13의 배수의 개수: 76
fn main() {
let numbers: Vec<u32> = (1..=1000).collect();
let mut count = 0;
for &number in &numbers {
if number % 13 == 0 {
count += 1;
}
}
println!("1부터 1,000까지의 정수 중 13의 배수의 개수: {}", count);
}
예제: 1부터 1,000까지의 정수 중 13의 배수의 개수
코드: CountAlgorithm.ts
function main() {
let numbers: number[] = Array.from({length: 1000}, (_, i) => i + 1);
let count: number = 0;
for (let number of numbers) {
if (number % 13 === 0) {
count++;
}
}
console.log(`1부터 1,000까지의 정수 중 13의 배수의 개수: ${count}`);
}
main();
1부터 1,000까지의 정수 중 13의 배수의 개수: 76
예제: 1부터 1,000까지의 정수 중 13의 배수의 개수
코드: CountAlgorithm.kt
fun main() {
val numbers = IntArray(1000) { i -> i + 1 }
var count = 0
for (number in numbers) {
if (number % 13 == 0) {
count++
}
}
println("1부터 1,000까지의 정수 중 13의 배수의 개수: $count")
}
1부터 1,000까지의 정수 중 13의 배수의 개수: 76