알고리즘 입문
개념 배우기직접 풀어보기
놀면 뭐 하니,
그냥 하는거야.

직접 풀어보자! 리스트 순회 3문제

코딩냥

안녕, 나 코딩냥이다냥! 개념은 다 배웠으니 이제 손을 움직일 시간이라냥. 오늘 문제 세 개는 전부 같은 뼈대로 풀린다냥. 하나를 풀면 나머지 둘은 갱신하는 줄만 바꾸면 된다냥!

문제를 푸는 순서

  1. 아래 링크를 눌러 문제 페이지로 간다냥
  2. 오른쪽 편집기에 코드를 쓴다냥
  3. 실행 으로 예시 입력이 잘 나오는지 확인한다냥
  4. 잘 되면 제출 을 눌러 채점받는다냥

막히면 AI 힌트 를 눌러도 된다냥. 정답 코드는 안 알려주고 생각할 방향만 알려준다냥. 틀렸을 땐 오답 진단 으로 왜 틀렸는지 물어봐도 된다냥!

먼저 · 입력 받는 법

코딩냥

개념 페이지에선 리스트를 코드 안에 직접 적어뒀지만, 채점 문제는 입력으로 받는다냥. 이 두 줄만 외워두면 된다냥!

n = int(input())                            # 숫자가 몇 개인지
numbers = list(map(int, input().split()))   # 숫자들을 리스트로
해설두 번째 줄이 하는 일

input() 은 "3 9 1 7 5" 같은 문자열 한 줄을 받는다냥.

  • .split() → ["3", "9", "1", "7", "5"] 로 쪼갠다냥
  • map(int, ...) → 각 조각을 숫자로 바꾼다냥
  • list(...) → 리스트로 묶는다냥

결과는 [3, 9, 1, 7, 5] 라냥!

미션 1·배열의 최댓값10분

숫자들 중 가장 큰 값을 출력하는 문제다냥.

문제 풀러 가기

개념 페이지의 최댓값 찾기 를 그대로 쓰면 된다냥. 시작값을 0 이 아니라 첫 번째 원소로 두는 걸 잊지 말자냥!

힌트가 필요하면 이 뼈대부터 채워보자냥.

n = int(input())
numbers = list(map(int, input().split()))

biggest = numbers[0]

for x in numbers:
    # 여기서 biggest 를 갱신한다냥
    pass

print(biggest)
미션 2·배열의 합10분

숫자들을 모두 더한 값을 출력하는 문제다냥.

문제 풀러 가기

이번엔 상자를 0 으로 시작해도 괜찮다냥. 왜 그런지는 개념 페이지에서 배웠지?

n = int(input())
numbers = list(map(int, input().split()))

total = 0

for x in numbers:
    # 여기서 total 에 더한다냥
    pass

print(total)
미션 3·짝수의 개수10분

숫자들 중 짝수가 몇 개인지 세는 문제다냥.

문제 풀러 가기

짝수 판별은 x % 2 == 0 이라냥. 조건에 맞을 때만 상자를 1 늘린다냥!

n = int(input())
numbers = list(map(int, input().split()))

count = 0

for x in numbers:
    # 짝수일 때만 count 를 1 늘린다냥
    pass

print(count)

다 풀었냥?

코딩냥

세 문제 모두 똑같은 뼈대였다는 걸 느꼈냥? 상자를 만들고, 훑고, 갱신하고, 출력한다냥. 바뀐 건 갱신하는 한 줄뿐이었다냥!

스스로 점검해보자냥

  • 세 문제를 전부 채점기에서 통과했냥?
  • 최댓값 문제에서 시작값을 왜 첫 원소로 뒀는지 설명할 수 있냥?
  • 새 문제를 봤을 때 "이건 한 번 훑으면 되겠다" 는 감이 오냥?
코딩냥

세 개 다 맞혔으면 오늘 목표 달성이라냥! 아직 안 풀린 게 있어도 괜찮다냥 — AI 힌트 를 1단계부터 눌러가며 천천히 가보자냥. 다음 시간엔 정렬을 배워서 "가장 큰 값" 말고 "두 번째로 큰 값" 같은 것도 찾아볼 거다냥!