리스트에서 값을 직접 꺼내요
리스트를 배웠어요. for value in values:는 values의 값을 앞에서부터 하나씩 꺼내요. 아래에서 value는 5·2·7로 바뀌어요. 인덱스가 필요한 경우와 실제 값만 필요한 경우를 구분해요.
values = [5, 2, 7]
for value in values:
print(value)
result = []로 빈 결과 리스트를 만들고, 고른 값을 append 하면 원본과 다른 리스트에 담을 수 있어요. 이번 그림은 3보다 큰 값 5·7을 고른 예제예요. 원본의 순서와 결과의 순서가 대응되는 모습을 보여 줘요.
원본은 읽고 결과에만 추가해요
같은 values에서 3보다 큰 값만 골라 봐요.
result = []
for value in values:
if value > 3:
result.append(value)
결과는 [5, 7], 원본 values는 [5, 2, 7]이에요. result는 원본과 별도로 만든 리스트예요. 순회하는 values에 값을 추가하면 읽을 대상이 늘어날 수 있어요. 결과를 담을 리스트를 구분해요.
출력할 때 print(len(result))로 개수를 쓰고, for value in result: 안에서 print를 쓰면 결과값을 한 줄씩 출력할 수 있어요. 아무 값도 고르지 않았다면 개수 0만 출력해요.
직접 풀어봐요
정수 리스트 values에서 기준 limit를 초과하는 값으로 새 리스트를 만들어요. 원래 순서와 중복을 유지해 출력해요.
첫 줄 n(0100), 다음 n 줄에 값(−10001000), 마지막 줄 limit(−1000~1000)이에요. 출력 첫 줄은 고른 값의 개수, 이후에는 고른 값 한 개씩이에요. 없으면 첫 줄 0만 출력해요.
예시 1: values=[5, 2, 7], limit= 3 → 출력 줄 2, 5, 7이에요.
예시 2: values=[4, 4, 1], limit= 2 → 출력 줄 2, 4, 4예요.
예시 입력
3 5 2 7 3
예상 결과
2 5 7
예시 입력
3 4 4 1 2
예상 결과
2 4 4
핵심 개념
stl-vector: for로 실제 값을 읽고, 새 리스트에 append해 순서·중복을 보존해요.