Menu
Coddy logo textTech

중첩 반복문

Coddy Rust 여정의 Fundamentals 섹션에 포함된 레슨 — 75개 중 41번째.

중첩 루프(nested loop)는 단순히 다른 루프 안에 있는 루프를 의미합니다. 내부 루프는 외부 루프의 매 반복마다 자신의 모든 반복을 완료합니다. 이에 대한 좋은 비유는 시계입니다. 매 시간(외부 루프)마다 분침(내부 루프)은 60분의 전체 사이클을 완료해야 합니다.

중첩 루프의 예:

for x in 0..2 {
    for y in 0..2 {
        println!("{} {}", x, y);
    }
}
// 출력 결과:
// 0 0
// 0 1
// 1 0
// 1 1

외부 루프 (x)는 두 번 실행되며, 매번 내부 루프 (y)가 두 번씩 실행됩니다.

challenge icon

챌린지

초급

1부터 n - 1 사이의 숫자를 사용하여 합이 n이 되는 모든 세 수의 조합(triplets)을 찾는 프로그램을 작성하세요. 프로그램은 첫 번째 숫자가 두 번째 숫자보다 작거나 같고, 두 번째 숫자가 세 번째 숫자보다 작거나 같은(즉, 비내림차순) 모든 가능한 조합을 보여주어야 합니다. 이는 "1 2 7"과 "2 1 7"처럼 동일한 숫자 집합을 나타내는 중복 조합을 방지하기 위함입니다.

예를 들어, n = 10인 경우 출력은 다음과 같아야 합니다:

1 1 8
1 2 7
1 3 6
1 4 5
2 2 6
2 3 5
2 4 4
3 3 4

이유는 다음과 같습니다:

1 + 1 + 8 = 10
1 + 2 + 7 = 10
1 + 3 + 6 = 10
1 + 4 + 5 = 10
2 + 2 + 6 = 10
2 + 3 + 5 = 10
2 + 4 + 4 = 10
3 + 3 + 4 = 10

출력 순서: 세 수의 조합은 오름차순으로 출력되어야 합니다. 첫 번째 숫자는 가장 작은 수부터 큰 수 순으로 반복되어야 하며, 각 첫 번째 숫자에 대해 두 번째 숫자는 첫 번째 숫자부터 a ≤ b ≤ c를 만족하는 최대 유효 값까지 반복되어야 합니다.

치트 시트

중첩 루프는 다른 루프 안에 있는 루프입니다. 내부 루프는 외부 루프의 매 단일 반복마다 자신의 모든 반복을 완료합니다.

기본적인 중첩 루프 구조:

for x in 0..2 {
    for y in 0..2 {
        println!("{} {}", x, y);
    }
}
// 출력:
// 0 0
// 0 1
// 1 0
// 1 1

외부 루프가 실행되며, 외부 루프의 각 반복에 대해 내부 루프는 전체 사이클을 실행합니다.

직접 해보기

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let n: i32 = input.trim().parse().unwrap();
    // 아래에 코드를 작성하세요

}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Fundamentals의 모든 레슨