직접 풀어보자! 리스트 순회 3문제
안녕, 나 코딩냥이다냥! 개념은 다 배웠으니 이제 손을 움직일 시간이라냥. 오늘 문제 세 개는 전부 같은 뼈대로 풀린다냥. 하나를 풀면 나머지 둘은 갱신하는 줄만 바꾸면 된다냥!
문제를 푸는 순서
- 아래 링크를 눌러 문제 페이지로 간다냥
- 오른쪽 편집기에 코드를 쓴다냥
- 실행 으로 예시 입력이 잘 나오는지 확인한다냥
- 잘 되면 제출 을 눌러 채점받는다냥
막히면 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] 라냥!
숫자들 중 가장 큰 값을 출력하는 문제다냥.
개념 페이지의 최댓값 찾기 를 그대로 쓰면 된다냥.
시작값을 0 이 아니라 첫 번째 원소로 두는 걸 잊지 말자냥!
힌트가 필요하면 이 뼈대부터 채워보자냥.
n = int(input())
numbers = list(map(int, input().split()))
biggest = numbers[0]
for x in numbers:
# 여기서 biggest 를 갱신한다냥
pass
print(biggest)숫자들을 모두 더한 값을 출력하는 문제다냥.
이번엔 상자를 0 으로 시작해도 괜찮다냥. 왜 그런지는 개념 페이지에서
배웠지?
n = int(input())
numbers = list(map(int, input().split()))
total = 0
for x in numbers:
# 여기서 total 에 더한다냥
pass
print(total)숫자들 중 짝수가 몇 개인지 세는 문제다냥.
짝수 판별은 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단계부터 눌러가며 천천히 가보자냥. 다음 시간엔 정렬을 배워서 "가장 큰 값" 말고 "두 번째로 큰 값" 같은 것도 찾아볼 거다냥!
