Menu
Coddy logo textTech

중첩 반복문

Coddy R 여정의 기초 섹션에 포함된 레슨 — 78개 중 44번째.

하나의 루프 안에 다른 루프를 배치하여 중첩 루프(nested loop)를 만들 수 있습니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행되므로, 조합이나 그리드와 같은 패턴을 작업할 때 유용합니다.

for (i in 1:3) {
  for (j in 1:2) {
    cat("i =", i, ", j =", j, "\n")
  }
}

출력:

i = 1 , j = 1 
i = 1 , j = 2 
i = 2 , j = 1 
i = 2 , j = 2 
i = 3 , j = 1 
i = 3 , j = 2

i의 각 값에 대해, 내부 루프는 j의 모든 값을 순환합니다. i가 1일 때, j는 1에서 2까지 변합니다. 그 후 i가 2가 되면, j는 다시 1에서 2까지 새로 시작합니다.

실용적인 예시로 간단한 곱셈 패턴을 만드는 방법은 다음과 같습니다:

for (row in 1:3) {
  for (col in 1:3) {
    cat(row * col, " ")
  }
  cat("\n")
}

출력 결과:

1  2  3  
2  4  6  
3  6  9

외부 루프는 행을 제어하며, 내부 루프는 해당 행 내의 각 열을 처리합니다. 각 행을 완료한 후에는 다음 줄로 이동하기 위해 개행 문자를 출력합니다.

challenge icon

챌린지

쉬움

입력으로부터 두 개의 숫자 rowscols를 읽으세요.

중첩 루프를 사용하여 각 셀에 해당 행 번호와 열 번호의 합이 포함된 숫자 사각형을 출력하세요. 행은 1부터 rows까지 번호가 매겨지고, 열은 1부터 cols까지 번호가 매겨집니다.

각 행을 별도의 줄에 출력하고, 값은 단일 공백으로 구분하세요. 출력을 위해 cat()을 사용하고, 각 행이 끝날 때마다 줄바꿈을 추가하세요.

예를 들어, 입력이 34라면 출력은 다음과 같아야 합니다:

2 3 4 5 
3 4 5 6 
4 5 6 7

첫 번째 행(행 1)의 값은 1+1=2, 1+2=3, 1+3=4, 1+4=5입니다. 두 번째 행(행 2)의 값은 2+1=3, 2+2=4, 2+3=5, 2+4=6 등과 같습니다.

치트 시트

중첩 루프(nested loop)는 다른 루프 안에 배치된 루프입니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행됩니다.

for (i in 1:3) {
  for (j in 1:2) {
    cat("i =", i, ", j =", j, "\n")
  }
}

i의 각 값에 대해, 내부 루프는 j의 모든 값을 순환합니다.

곱셈 패턴을 생성하는 예제:

for (row in 1:3) {
  for (col in 1:3) {
    cat(row * col, " ")
  }
  cat("\n")
}

외부 루프는 행을 제어하고, 내부 루프는 해당 행 내의 각 열을 처리합니다. 각 행을 완료한 후 새 줄을 출력하려면 cat("\n")을 사용하세요.

직접 해보기

# 입력 읽기
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)

# TODO: 아래에 코드를 작성하세요
# 중첩 루프를 사용하여 각 셀에 행 + 열 값이 포함된 사각형을 출력하세요
# cat()을 사용하여 값을 공백으로 구분하여 출력하고, 각 행 뒤에 줄바꿈을 추가하세요
quiz icon실력 점검

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

기초의 모든 레슨