최댓값 알고리즘을 적용해 주어진 범위의 데이터 중 가장 큰 값을 구하는 예제를 만들어 봅시다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: MaxAlgorithm.cs
//[?] 주어진 데이터 중에서 가장 큰 값
using System;
using System.Linq;
/// <summary>
/// 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
/// </summary>
class MaxAlgorithm
{
static void Main()
{
//[1] Initialize
int max = int.MinValue; // 정수 형식의 데이터 중 가장 작은 값으로 초기화
//[2] Input
int[] numbers = { -2, -5, -3, -7, -1 };
//[3] Process: MAX
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] > max)
{
max = numbers[i]; // MAX: 더 큰 값으로 할당
}
}
//[4] Output
Console.WriteLine($"최댓값(식): {numbers.Max()}");
Console.WriteLine($"최댓값(문): {max}");
}
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. 그리고 최댓값을 LINQ로 구할 때에는 System.Linq
네임스페이스의 Max()
확장 메서드를 사용하면 됩니다.
코드: MaxAlgorithm.c
//[?] 주어진 데이터 중에서 가장 큰 값
using System.Linq;
/// <summary>
/// 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
/// </summary>
class MaxAlgorithm
{
int main(void)
{
//[1] Initialize
int max = int.MinValue; // 정수 형식의 데이터 중 가장 작은 값으로 초기화
//[2] Input
int[] numbers = { -2, -5, -3, -7, -1 };
//[3] Process: MAX
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] > max)
{
max = numbers[i]; // MAX: 더 큰 값으로 할당
}
}
//[4] Output
printf($"최댓값(식): {numbers.Max()}");
printf($"최댓값(문): {max}");
}
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘의 특징은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화 후 사용해야 한다는 점을 주의해야 합니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: MaxAlgorithm.java
import java.util.Arrays;
/**
* 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
*/
public class MaxAlgorithm {
public static void main(String[] args) {
//[1] Initialize
int max = Integer.MIN_VALUE; // 정수 형식의 데이터 중 가장 작은 값으로 초기화
//[2] Input
int[] numbers = { -2, -5, -3, -7, -1 };
//[3] Process: MAX
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] > max) {
max = numbers[i]; // MAX: 더 큰 값으로 할당
}
}
//[4] Output
System.out.println("최댓값(식): " + Arrays.stream(numbers).max().getAsInt());
System.out.println("최댓값(문): " + max);
}
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. 자바에서 최댓값을 구할 때에는 java.util.Arrays 클래스를 사용해 배열을 스트림으로 변환한 후 max() 메서드를 사용하면 됩니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: max_algorithm.py
# 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
# [1] Initialize
max_value = float('-inf') # 정수 형식의 데이터 중 가장 작은 값으로 초기화
# [2] Input
numbers = [-2, -5, -3, -7, -1]
# [3] Process: MAX
for number in numbers:
if number > max_value:
max_value = number # MAX: 더 큰 값으로 할당
# [4] Output
print("최댓값(식):", max(numbers))
print("최댓값(문):", max_value)
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. 파이썬에서 최댓값을 구할 때에는 내장 함수인 max()를 사용하면 됩니다.
https://github.com/VisualAcademy/JavaScript/blob/master/JavaScript/JavaScript/31_Algorithms/04_01_MaxAlgorithm/MaxAlgorithm.js
//[?] 주어진 데이터 중에서 가장 큰 값
// 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
(function() {
//[0] Initialize
var max = Number.MIN_SAFE_INTEGER; // 숫자 형식의 데이터 중 가장 작은 값으로 초기화
//[1] Input
var numbers = [ -2, -5, -3, -7, -1 ]; // MAX: -1
var N = numbers.length; // 의사코드
//[2] Process: MAX
for (var i = 0; i < N; i++) {
if (numbers[i] > max) { // 더 큰 데이터가 있다면
max = numbers[i]; // MAX: 더 큰 값으로 할당
}
}
//[3] Output
console.log("최댓값: " + max);
})();
예제: 주어진 데이터 중에서 가장 큰 값
코드: maxAlgorithm.js
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Max Algorithm</title>
<script>
// 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
function findMax() {
// [1] Initialize
let max_value = Number.MIN_SAFE_INTEGER; // 정수 형식의 데이터 중 가장 작은 값으로 초기화
// [2] Input
let numbers = [-2, -5, -3, -7, -1];
// [3] Process: MAX
for (let number of numbers) {
if (number > max_value) {
max_value = number; // MAX: 더 큰 값으로 할당
}
}
// [4] Output
document.getElementById("result").innerHTML = `최댓값(식): ${Math.max(...numbers)}<br>최댓값(문): ${max_value}`;
}
</script>
</head>
<body>
<h1>Max Algorithm</h1>
<button onclick="findMax()">Find Max</button>
<p id="result"></p>
</body>
</html>
웹 브라우저에서 이 HTML 파일을 열고 "Find Max" 버튼을 클릭하면 아래와 같은 결과가 출력됩니다.
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. 자바스크립트에서 최댓값을 구할 때에는 내장 함수인 Math.max()를 사용하면 됩니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: max_algorithm.cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
int main() {
// [1] Initialize
int max_value = std::numeric_limits<int>::min(); // 정수 형식의 데이터 중 가장 작은 값으로 초기화
// [2] Input
std::vector<int> numbers = {-2, -5, -3, -7, -1};
// [3] Process: MAX
for (int number : numbers) {
if (number > max_value) {
max_value = number; // MAX: 더 큰 값으로 할당
}
}
// [4] Output
std::cout << "최댓값(식): " << *std::max_element(numbers.begin(), numbers.end()) << std::endl;
std::cout << "최댓값(문): " << max_value << std::endl;
return 0;
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. C++에서 최댓값을 구할 때에는 algorithm 헤더 파일의 max_element() 함수를 사용하면 됩니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: max_algorithm.go
package main
import (
"fmt"
"math"
)
// 최댓값 알고리즘(Max Algorithm): (주어진 범위 + 주어진 조건)의 자료들의 가장 큰 값
func main() {
// [1] Initialize
max_value := math.MinInt64 // 정수 형식의 데이터 중 가장 작은 값으로 초기화
// [2] Input
numbers := []int{-2, -5, -3, -7, -1}
// [3] Process: MAX
for _, number := range numbers {
if number > max_value {
max_value = number // MAX: 더 큰 값으로 할당
}
}
// [4] Output
fmt.Printf("최댓값(식): %d\n", max(numbers))
fmt.Printf("최댓값(문): %d\n", max_value)
}
// 사용자 정의 max 함수
func max(slice []int) int {
max := math.MinInt64
for _, v := range slice {
if v > max {
max = v
}
}
return max
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. Go에서 최댓값을 구할 때에는 math 패키지의 MinInt64 상수를 사용하여 초기화하고 사용자 정의 max 함수를 작성하여 사용할 수 있습니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: max_algorithm.rs
fn main() {
// [1] Initialize
let mut max_value = std::i32::MIN; // 정수 형식의 데이터 중 가장 작은 값으로 초기화
// [2] Input
let numbers = vec![-2, -5, -3, -7, -1];
// [3] Process: MAX
for &number in &numbers {
if number > max_value {
max_value = number; // MAX: 더 큰 값으로 할당
}
}
// [4] Output
println!("최댓값(식): {}", numbers.iter().cloned().max().unwrap());
println!("최댓값(문): {}", max_value);
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. Rust에서 최댓값을 구할 때에는 std::i32::MIN 상수를 사용하여 초기화하고 반복자를 사용해 간단하게 구할 수 있습니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: max_algorithm.ts
function main() {
// [1] Initialize
let max_value: number = Number.MIN_SAFE_INTEGER; // 정수 형식의 데이터 중 가장 작은 값으로 초기화
// [2] Input
let numbers: number[] = [-2, -5, -3, -7, -1];
// [3] Process: MAX
for (let number of numbers) {
if (number > max_value) {
max_value = number; // MAX: 더 큰 값으로 할당
}
}
// [4] Output
console.log(`최댓값(식): ${Math.max(...numbers)}`);
console.log(`최댓값(문): ${max_value}`);
}
main();
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. TypeScript에서 최댓값을 구할 때에는 Number.MIN_SAFE_INTEGER 상수를 사용하여 초기화하고, Math.max 함수를 사용해 간단하게 구할 수 있습니다.
예제: 주어진 데이터 중에서 가장 큰 값
코드: MaxAlgorithm.kt
fun main() {
// [1] Initialize
var max_value: Int = Int.MIN_VALUE // 정수 형식의 데이터 중 가장 작은 값으로 초기화
// [2] Input
val numbers: IntArray = intArrayOf(-2, -5, -3, -7, -1)
// [3] Process: MAX
for (number in numbers) {
if (number > max_value) {
max_value = number // MAX: 더 큰 값으로 할당
}
}
// [4] Output
println("최댓값(식): ${numbers.maxOrNull()}")
println("최댓값(문): $max_value")
}
최댓값(식): -1
최댓값(문): -1
최댓값 알고리즘은 최댓값이 담길 변수의 값을 정수형이 가질 수 있는 가장 작은 값으로 초기화한 후 사용해야 한다는 점에 주의해야 합니다. Kotlin에서 최댓값을 구할 때에는 Int.MIN_VALUE 상수를 사용하여 초기화하고, maxOrNull 함수를 사용해 간단하게 구할 수 있습니다.