99클럽 코테 스터디 24일차 TIL + 오늘의 학습 키워드

ㅎㅇ·2024년 8월 14일
0

항해99 TIL

목록 보기
18/33
post-custom-banner

*문제

*코드
class Solution {
public int findCenter(int[][] edges) {
// 첫 두 간선만 확인하면 중심 노드를 찾을 수 있습니다
int[] firstEdge = edges[0];
int[] secondEdge = edges[1];

    // 두 간선에 공통으로 나타나는 노드가 중심 노드입니다
    if (firstEdge[0] == secondEdge[0] || firstEdge[0] == secondEdge[1]) {
        return firstEdge[0];
    } else {
        return firstEdge[1];
    }
}

}

*리뷰
메소드 선언:

public 접근 제어자를 사용하여 외부에서 호출 가능합니다.
입력으로 2차원 정수 배열 edges를 받고, 정수를 반환합니다.

간선 추출:

firstEdge와 secondEdge 변수를 사용하여 첫 두 간선을 저장합니다.
이는 코드의 가독성을 높이고 배열 인덱싱을 줄입니다.

중심 노드 찾기:

if-else 구문을 사용하여 중심 노드를 결정합니다.
첫 번째 간선의 첫 노드(firstEdge[0])가 두 번째 간선의 어느 노드와 일치하는지 확인합니다.
일치하면 그 노드가 중심 노드이므로 firstEdge[0]을 반환합니다.
일치하지 않으면 firstEdge[1]이 중심 노드이므로 이를 반환합니다.

최적화:

단 두 개의 간선만 확인하여 O(1) 시간 복잡도를 달성합니다.
추가 메모리를 사용하지 않아 O(1) 공간 복잡도를 유지합니다.

가정:

입력이 항상 유효한 별 그래프를 나타낸다고 가정합니다.
따라서 별도의 입력 유효성 검사를 수행하지 않습니다.

개선 가능성:

입력 배열의 길이 확인 등 기본적인 유효성 검사를 추가할 수 있습니다.
하지만 이는 시간 복잡도를 높일 수 있으므로 트레이드오프를 고려해야 합니다.

profile
안녕하세요
post-custom-banner

0개의 댓글