Menu
Coddy logo textTech

문자 반복하기 (strsplit)

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

문자열의 각 문자를 개별적으로 처리해야 한다면 어떻게 해야 할까요? 벡터와 달리, R에서는 문자열의 문자를 직접 루프(loop)로 돌릴 수 없습니다. strsplit() 함수는 문자열을 문자 벡터로 분할하여 이 문제를 해결합니다.

strsplit() 함수는 분할할 문자열과 구분자라는 두 개의 인수를 받습니다. 개별 문자로 분할하려면 빈 문자열 ""을 구분자로 사용하세요:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

출력:

[1] "h" "e" "l" "l" "o"

끝에 있는 [[1]]을 확인하세요. 이는 strsplit()이 리스트를 반환하기 때문이며, 문자 벡터를 얻으려면 첫 번째 요소를 추출해야 합니다. 문자들이 벡터 형태로 준비되면, 이미 배운 기술들을 사용하여 이들을 반복 처리할 수 있습니다:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

출력:

[1] "R"

이 기술은 특정 문자 수 세기, 문자열 뒤집기 또는 입력을 문자 단위로 검증하는 것과 같은 작업에 필수적입니다.

challenge icon

챌린지

쉬움

단어(예: programming)가 포함된 한 줄의 입력을 받게 됩니다.

strsplit()을 사용하여 문자열을 개별 문자로 분리하세요:

  1. 입력된 단어를 문자 벡터로 분리합니다.
  2. 벡터의 각 문자를 루프(loop)로 순회합니다.
  3. 단어에 문자 "a"가 몇 번 나타나는지 셉니다 (대소문자 구분).
  4. print()를 사용하여 각 문자를 개별 줄에 출력합니다.
  5. 루프가 끝난 후, cat()을 사용하여 Count of 'a': X 형식 뒤에 줄바꿈을 붙여 개수를 출력합니다.

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

banana

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

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

설명: "banana"라는 단어는 c("b", "a", "n", "a", "n", "a") 문자들로 분리됩니다. 각 문자가 출력되고, 문자 "a"는 3번 나타납니다.

치트 시트

문자열을 개별 문자로 분리하려면, 빈 문자열 ""을 구분자로 사용하여 strsplit()을 사용하세요:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

출력:

[1] "h" "e" "l" "l" "o"

[[1]]strsplit()에 의해 반환된 리스트에서 첫 번째 요소를 추출하여 문자 벡터를 제공합니다.

그런 다음 문자들을 반복문으로 처리할 수 있습니다:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

직접 해보기

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

# 문자 'a'를 위한 카운터 초기화
count_a <- 0

# TODO: 아래에 코드를 작성하세요
# 1. strsplit()을 사용하여 단어를 개별 문자로 분리합니다
# 2. 각 문자를 반복합니다
# 3. print()를 사용하여 각 문자를 출력합니다
# 4. 'a'가 나타나는 횟수를 셉니다

# 'a'의 개수 출력
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz icon실력 점검

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

기초의 모든 레슨