<aside> 💬 lv0, 자료 구조

중간 노드 찾기

문제 설명

링크드 리스트가 주어졌을 때, 중간 노드의 값을 반환하는 함수를 작성해주세요. 만약 링크드 리스트의 길이가 짝수라면, 두 중간 노드 중 두 번째 노드를 반환해야 합니다.


제한 사항


입출력 예

입력 (링크드 리스트) 출력 (중간 노드의 값)
[1, 2, 3, 4, 5] 3
[1, 2, 3, 4] 3
[7, 10, 13] 10

입출력 설명

주어진 링크드 리스트에서 중간에 위치한 노드의 값을 반환합니다. 링크드 리스트 [1, 2, 3, 4, 5]의 경우, 중간 노드는 값이 3인 노드이므로 3을 반환합니다.

</aside>

😺 풀이 1. 조건문

def solution(nums): **#1 함수 정의**
    mid_index = len(nums) // 2 **#2 중간 인덱스 계산**
    
    **#3 결과 반환**
    if len(nums) % 2 == 0:
        return nums[mid_index]
    else:
        return nums[mid_index]

단계별 풀이 전략

  1. 함수 정의

    코드의 첫 부분에서 solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 nums를 받습니다. nums는 링크드 리스트입니다.

  2. 중간 인덱스 계산

    nums의 길이를 2로 나누어 mid_index 변수에 저장합니다.

  3. 결과 반환

    nums의 길이가 짝수인 경우와 홀수인 경우로 나누어 중간 노드를 반환합니다.

알아둬야 할 개념

len() 함수

풀이 2. 단순 길이 계산

def solution(data): **#1 함수 정의**
    return data[int(len(data)/2)] **#2 결과 반환**

단계별 풀이 전략

  1. 함수 정의

    코드의 첫 부분에서 solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 data를 받습니다. data는 연결 리스트입니다.

  2. 결과 반환

    len(data)를 사용하여 링크드 리스트의 길이를 구합니다. 길이를 2로 나누고, int() 함수를 사용하여 정수 부분만 취합니다. 계산된 인덱스를 사용하여 data 리스트에서 중간 노드의 값을 가져와 반환합니다.

알아둬야 할 개념

연결 리스트(Linked List)