백준 1263

정유빈·2024년 9월 30일


w[0] for w in work는 리스트 컴프리헨션(list comprehension)의 한 부분으로, 이 구문은 work 리스트 안의 각 리스트에서 첫 번째 값을 추출하는 간결한 방법입니다.

해당 방법에 대해서 오래 기억하기 위해서 작성한 페이지

N = int(input())
work = []   # 모든 입력을 저장할 리스트

for i in range(N):
    temp = list(map(int, input().split()))   # 입력받은 값을 임시 리스트에 저장
    work.append(temp)   # 각 입력을 work 리스트에 추가

first_hap = sum(w[0] for w in work)   # w[0]는 for문의 w 이다

# 입력 값)
4
3 5
8 14
5 20
1 16

1. work 리스트

먼저, work 리스트는 여러 개의 리스트를 포함한 2차원 리스트입니다. 예를 들어, 다음과 같은 입력이 있다고 가정합니다:

work = [
    [3, 5],
    [8, 14],
    [5, 20],
    [1, 16]
]

여기서 work는 4개의 리스트를 포함하는 리스트입니다. 각 리스트는 두 개의 정수 값을 가지고 있습니다.

2. 리스트 컴프리헨션의 구조

w[0] for w in work는 리스트 컴프리헨션의 일부로, 그 구조는 다음과 같습니다:

표현식 for 변수 in 반복가능한 객체

이를 해석해 보면:

for 변수 in 반복가능한 객체: work라는 리스트 안에서 각 요소(각각의 리스트)를 하나씩 꺼내 w에 할당합니다.
표현식: w[0]은 각 리스트 w의 첫 번째 요소를 의미합니다.
따라서, 리스트 컴프리헨션은 work 리스트의 각 리스트에서 첫 번째 요소를 추출하는 동작을 합니다.

3. for w in work

이 부분은 work 리스트를 반복하는 구문입니다. work 안에 있는 각 리스트를 하나씩 가져와서 변수 w에 할당합니다. 예를 들어:

  • 첫 번째 반복: w는 [3, 5]
  • 두 번째 반복: w는 [8, 14]
  • 세 번째 반복: w는 [5, 20]
  • 네 번째 반복: w는 [1, 16]

즉, for w in work는 work 리스트의 각 요소(리스트)를 순서대로 가져오는 역할을 합니다.

4. w[0]

이 부분은 w라는 리스트의 첫 번째 요소를 의미합니다. w는 work 리스트의 각 요소(리스트) 중 하나이기 때문에, w[0]은 그 리스트의 첫 번째 요소를 나타냅니다. 예를 들어:

  • 첫 번째 반복: w가 [3, 5]일 때, w[0]은 3
  • 두 번째 반복: w가 [8, 14]일 때, w[0]은 8
  • 세 번째 반복: w가 [5, 20]일 때, w[0]은 5
  • 네 번째 반복: w가 [1, 16]일 때, w[0]은 1

즉, w[0]은 각 리스트의 첫 번째 요소를 의미합니다.

5. 전체 리스트 컴프리헨션 구문

이제 w[0] for w in work 구문을 전체로 보면:

[w[0] for w in work]

이것은 work 리스트 안의 각 리스트에서 첫 번째 요소를 추출하여 새로운 리스트를 만듭니다. 예를 들어:

work = [
    [3, 5],
    [8, 14],
    [5, 20],
    [1, 16]
]


first_elements = [w[0] for w in work]

위 코드에서 first_elements는 [3, 8, 5, 1]이 됩니다. 각 리스트의 첫 번째 요소들만 모아서 새로운 리스트를 만들었기 때문입니다.

6. sum() 함수와의 결합

만약 이 첫 번째 값들의 합을 구하고 싶다면, 이 리스트 컴프리헨션을 sum() 함수와 결합할 수 있습니다:

total_sum = sum(w[0] for w in work)

여기서 sum() 함수는 리스트 컴프리헨션이 만들어낸 값들을 모두 더해줍니다. 예를 들어, w[0] for w in work는 [3, 8, 5, 1] 리스트를 생성하므로, sum()은 3 + 8 + 5 + 1 = 17을 계산합니다.

요약

for w in work: work 리스트의 각 리스트를 w에 할당하면서 반복합니다.
w[0]: 각 리스트의 첫 번째 요소를 의미합니다.
sum(w[0] for w in work): 각 리스트의 첫 번째 요소들을 더한 값을 계산합니다.
이렇게 하면 각 리스트의 첫 번째 요소만을 추출하여 그 합을 구하는 동작을 효율적으로 수행할 수 있습니다.

profile
대한민국의 미래를 묻는다면 고개를 들어 나를 쳐다보거라

0개의 댓글