Menu
Coddy logo textTech

seq_along() 사용하기

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

때때로 벡터 내 요소의 값과 위치가 모두 필요할 때가 있습니다. 요소들을 직접 반복하는 방식은 깔끔하지만, 인덱스에 접근할 수는 없습니다. seq_along() 함수는 모든 벡터에 대해 인덱스 시퀀스를 생성함으로써 이 문제를 해결합니다.

seq_along() 함수는 1부터 벡터의 길이까지의 시퀀스를 반환합니다:

fruits <- c("apple", "banana", "cherry")
print(seq_along(fruits))

출력:

[1] 1 2 3

이러한 인덱스를 반복함으로써 위치와 값 모두에 접근할 수 있습니다:

fruits <- c("apple", "banana", "cherry")
for (i in seq_along(fruits)) {
  cat(i, ":", fruits[i], "\n")
}

출력:

1 : apple 
2 : banana 
3 : cherry

이 접근 방식은 특정 위치의 요소를 수정하거나 요소를 이웃 요소와 비교해야 할 때 특히 유용합니다. seq_along()을 사용하는 것이 1:length(vec)보다 안전합니다. 빈 벡터를 올바르게 처리하여 1:0 대신 빈 시퀀스를 반환하기 때문입니다.

challenge icon

챌린지

쉬움

쉼표로 구분된 숫자가 포함된 한 줄의 입력을 받게 됩니다 (예: 10,20,30,40,50).

인덱스와 함께 벡터를 반복하기 위해 seq_along()을 사용하세요:

  1. 쉼표로 구분된 입력으로부터 벡터를 생성합니다.
  2. seq_along()을 사용하여 벡터를 루프하며 인덱스와 값을 모두 가져옵니다.
  3. 각 요소에 대해 인덱스, 값, 그리고 해당 지점까지의 누적 합계(1번 위치부터 현재 위치까지의 모든 요소의 합)를 출력합니다.

cat()을 사용하여 다음 형식을 따르고: Position X: VALUE (Running total: TOTAL) 뒤에 줄바꿈을 추가하세요.

예를 들어, 입력이 다음과 같다면:

5,10,15,20

출력은 다음과 같아야 합니다:

Position 1: 5 (Running total: 5)
Position 2: 10 (Running total: 15)
Position 3: 15 (Running total: 30)
Position 4: 20 (Running total: 50)

설명: 1번 위치에서 값은 5이고 누적 합계는 5입니다. 2번 위치에서 값은 10이고 누적 합계는 5+10=15입니다. 3번 위치에서 값은 15이고 누적 합계는 5+10+15=30이며, 이런 방식으로 계속됩니다.

힌트: i번째 위치까지의 누적 합계를 계산하려면 sum(vector[1:i])를 사용하세요.

치트 시트

seq_along() 함수는 벡터의 길이만큼 1부터 시작하는 인덱스 시퀀스를 생성합니다:

fruits <- c("apple", "banana", "cherry")
print(seq_along(fruits))
# 출력: [1] 1 2 3

루프에서 seq_along()을 사용하여 인덱스와 값에 모두 접근하세요:

fruits <- c("apple", "banana", "cherry")
for (i in seq_along(fruits)) {
  cat(i, ":", fruits[i], "\n")
}
# 출력:
# 1 : apple 
# 2 : banana 
# 3 : cherry

seq_along()을 사용하는 것이 1:length(vec)보다 안전합니다. 빈 벡터를 올바르게 처리하여 1:0 대신 빈 시퀀스를 반환하기 때문입니다.

직접 해보기

# 입력 읽기
con <- file("stdin", "r")
input_line <- suppressWarnings(readLines(con, n = 1))
close(con)

# 쉼표로 구분된 문자열을 숫자 벡터로 변환
numbers <- as.numeric(strsplit(input_line, ",")[[1]])

# TODO: 아래에 코드를 작성하세요
# seq_along()을 사용하여 벡터를 순회하세요
# 각 위치에 대해 인덱스, 값, 그리고 누적 합계를 출력하세요
# cat()을 사용하여 다음 형식으로 출력하세요: Position X: VALUE (Running total: TOTAL)\n
quiz icon실력 점검

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

기초의 모든 레슨