Menu
CoddyTech

중첩 반복문

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

다른 루프 안에 루프를 배치하여 중첩 루프를 만들 수 있습니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행되므로, 조합이나 격자 형태의 패턴을 다룰 때 유용합니다.

rows <- 3
cols <- 2
for (i in 1:rows) {
  for (j in 1:cols) {
    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까지 시작합니다. rows와 cols는 절대 바뀌지 않습니다. 루프가 언제 멈출지만 알려줍니다.

실용적인 예로 간단한 곱셈 패턴을 만들 수 있습니다:

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

챌린지

쉬움

입력에서 두 숫자 rows와 cols를 읽으세요.

중첩 루프를 사용하여 각 셀에 해당 행 번호와 열 번호의 합이 들어가는 숫자 사각형을 출력하세요. 행 번호는 1부터 rows까지이고, 열 번호는 1부터 cols까지입니다.

각 행을 별도의 줄에 출력하고, 값 사이에는 공백 하나를 넣으세요. 출력에는 cat()을 사용하고, 각 행 뒤에 줄바꿈을 추가하세요.

예를 들어 입력이 3과 4라면 출력은 다음과 같아야 합니다.

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이며, 이런 식으로 계속됩니다.

cat()은 전달한 값 사이에 공백을 넣으므로 cat(row + col, "")은 숫자 뒤에 공백을 정확히 하나 출력합니다.

각 루프에는 새 카운터를 사용하고(예를 들어 행에는 row, 한 행의 숫자에는 col) 이를 rows 또는 cols와 비교하세요. rows와 cols 자체는 변경하지 마세요. 각 행마다 cols가 다시 필요합니다.

직접 해보기

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

# TODO: 아래에 코드를 작성하세요
# 중첩 반복문을 사용하여 각 칸에 row + column이 들어 있는 직사각형을 출력하세요
# cat()을 사용하여 값을 공백으로 구분해 출력하고, 각 행 뒤에는 줄바꿈을 추가하세요
quiz icon실력 점검

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

기초의 모든 레슨

직접 연습해 보세요: 온라인 R 컴파일러