Menu
Coddy logo textTech

총 지출액

Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 58번째.

challenge icon

챌린지

쉬움

TOTAL 명령을 tracker()에 추가하세요. 이전 단계의 모든 명령이 이전과 정확히 동일하게 작동하도록 유지하세요.

  • TOTAL: total: 뒤에 기록된 모든 금액의 합계를 소수점 이하 두 자리로 표시하고, 이어서 , count: 와 지출 건수를 표시하여 응답합니다. 예: total: 512.50, count: 2. 기록된 항목이 없으면 응답은 total: 0.00, count: 0입니다.

제공된 코드는 모든 입력 줄을 하나의 명령으로 tracker()에 전달하고, 반환된 각 응답을 한 줄씩 출력합니다. 날짜는 YYYY-MM-DD 형식으로 작성되며, 카테고리는 소문자 단어이고, 입력에는 지금까지 설명한 명령만 포함됩니다.

직접 해보기

tracker <- function(commands) {
  expenses <- data.frame(date = character(0), category = character(0), amount = numeric(0))
  replies <- c()
  for (cmd in commands) {
    parts <- strsplit(cmd, " ")[[1]]
    if (parts[1] == "ADD") {
      amount <- suppressWarnings(as.numeric(parts[4]))
      if (length(parts) != 4 || is.na(amount) || amount <= 0) {
        replies <- c(replies, paste("invalid:", cmd))
      } else {
        expenses <- rbind(expenses, data.frame(date = parts[2], category = parts[3], amount = amount))
        replies <- c(replies, sprintf("added %s %.2f", parts[3], amount))
      }
    }
  }
  replies
}

# 제공된 입력/출력 코드: 있는 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
cat(tracker(input), sep = "\n")

논리와 흐름의 모든 레슨

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