Menu
Coddy logo textTech

요약 - 고급 루프 제어

Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨 — 68개 중 5번째.

challenge icon

챌린지

쉬움

이 챌린지에서는 레이블이 지정된 break 문을 switchfallthrough와 결합하여 보안 모니터링 시스템을 만듭니다. 이 시스템은 여러 보안 구역에서 위협을 검색하고 계단식 경고 수준으로 분류합니다.

두 개의 입력을 받게 됩니다:

  • 검색할 위협 수준을 나타내는 문자열 (예: "high")
  • 검색할 최대 구역 수를 나타내는 문자열 (예: "3")

다음과 같은 보안 구역 데이터가 제공됩니다:

zones := [][]string{
    {"low", "medium", "low"},
    {"medium", "high", "low"},
    {"critical", "medium", "high"},
    {"low", "critical", "medium"}
}

수행해야 할 작업은 다음과 같습니다:

  1. 첫 번째 입력에서 위협 수준을 파싱합니다.
  2. 두 번째 입력에서 검색할 최대 구역 수를 파싱합니다.
  3. 레이블이 지정된 break와 중첩 루프를 사용하여 구역을 검색합니다.
  4. 대상 위협 수준을 찾으면 "Threat found at zone [zone_number] position [position]"을 출력하고 레이블이 지정된 break를 사용하여 즉시 두 루프를 모두 종료합니다.
  5. 위협을 찾은 후(또는 위협을 찾지 못한 경우), switch 문과 fallthrough를 사용하여 검색 중이었던 위협 수준에 따른 보안 경고를 표시합니다.

switch 문은 다음과 같이 작동해야 합니다:

  • "critical"인 경우: "CRITICAL: Lockdown initiated!"를 출력하고 fall through하여 high 경고도 출력합니다.
  • "high"인 경우: "HIGH: Security breach detected!"를 출력하고 fall through하여 medium 경고도 출력합니다.
  • "medium"인 경우: "MEDIUM: Increased monitoring active"를 출력합니다.
  • "low"인 경우: "LOW: Standard security protocols"를 출력합니다.

지정된 수의 구역을 검색한 후에도 위협을 찾지 못한 경우, 보안 경고를 표시하기 전에 "Threat not found in searched zones"를 출력합니다. 구역 번호와 구역 내 위치에는 0부터 시작하는 인덱스를 사용하세요.

직접 해보기

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // 입력 읽기
    var threatLevel string
    var maxZonesStr string
    fmt.Scanln(&threatLevel)
    fmt.Scanln(&maxZonesStr)
    
    // 최대 구역 수를 정수로 변환
    maxZones, _ := strconv.Atoi(maxZonesStr)
    
    // 보안 구역 데이터
    zones := [][]string{
        {"low", "medium", "low"},
        {"medium", "high", "low"},
        {"critical", "medium", "high"},
        {"low", "critical", "medium"},
    }
    
    // TODO: 아래에 코드를 작성하세요
    // 레이블이 지정된 break와 중첩 루프를 사용하여 위협을 검색하세요
    // 위협을 찾으면 위협 위치를 출력하고, 찾지 못하면 "Threat not found in searched zones"를 출력하세요
    // 그 다음 보안 경보를 위해 fallthrough가 포함된 switch를 사용하세요
    
}

로직 & 흐름의 모든 레슨