Menu
Coddy logo textTech

숫자 패턴

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

피라미드와 같은 패턴을 만들 때, 종종 반복되는 문자로 구성된 문자열을 만들어야 할 때가 있습니다. Rust에는 이를 수행하는 여러 가지 방법이 있지만, 가장 간단한 방법 중 하나는 다음과 같습니다:

let str = "a".repeat(10);

str"aaaaaaaaaa"를 갖게 됩니다.

repeat() 메서드는 i32와 같은 일반 정수 타입이 아닌 usize 인수를 명시적으로 요구합니다.

usize는 Rust의 부호 없는 포인터 크기 정수 타입입니다. 그 크기는 아키텍처에 따라 달라집니다(32비트 시스템에서는 32비트, 64비트 시스템에서는 64비트).

let count: usize = 5;
let repeated = "x".repeat(count);  // 정상적으로 동작합니다

i32 또는 다른 정수 타입의 값이 있다면, 이를 변환해야 합니다:

let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// 'as usize'를 사용하여 변환합니다

이 코드는 컴파일되지 않습니다:

let repeated = "z".repeat(num);
// 오류: usize가 예상되었으나 i32가 발견됨
challenge icon

챌린지

쉬움

각 테스트 케이스는 하나의 입력 - 홀수인 정수를 가집니다.
당신의 작업은 *를 사용하여 n - 피라미드를 출력하는 것입니다. 다음은 몇 가지 예시입니다:

1 - 피라미드

*

5 - 피라미드

*
***
*****

7 - 피라미드

*
***
*****
*******

입력

  • 사용자로부터 입력받는 홀수 정수 n
  • 1 <= n < 1000

  • 작은 삼각형부터 시작해 보세요
  • 막혔을 때는 힌트를 확인해 보세요 ;)

n은 맨 아래 줄에 있는 *의 개수를 나타냅니다

참고: Rust에서 무언가의 "크기"나 "길이"를 다루는 함수(예: .repeat())는 i32 대신 usize라는 타입을 필요로 합니다. usize는 절대 음수가 되지 않는 일반적인 정수로 취급할 수 있습니다.

치트 시트

Rust에서 반복되는 문자가 포함된 문자열을 생성하려면 repeat() 메서드를 사용하세요:

let str = "a".repeat(10);

이렇게 하면 "aaaaaaaaaa" ("a"가 10번 반복됨)가 생성됩니다.

repeat() 메서드는 i32나 다른 정수 타입이 아닌 usize(부호 없는 포인터 크기 정수)만 인자로 받습니다.

let count: usize = 5;
let repeated = "x".repeat(count); // 정상 작동

let num: i32 = 7;
let repeated = "y".repeat(num as usize); // 정상 작동

let repeated = "z".repeat(num);  // 오류: usize가 필요하지만 i32가 발견됨

직접 해보기

use std::io;

fn main() {
    let mut input_n = String::new();
    io::stdin().read_line(&mut input_n).unwrap();
    let n: usize = input_n.trim().parse().unwrap();

    
}
quiz icon실력 점검

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

Fundamentals의 모든 레슨