[99클럽 코테스터디 2기][Python/비기너] 24번째 문제: Find Center of Star Graph

최민지·2024년 6월 12일
0
post-thumbnail

오늘의 주제는 그래프

[Find Center of Star Graph]

문제

입력과 출력

코드

class Solution:
    def findCenter(self, edges: List[List[int]]) -> int:
        arr=[]
        for i in range(2):
            arr.append(edges[0][i])

        for i in range(1,len(edges)):
            for j in arr:
                if j in edges[i]:
                    return j  

알고리즘

주어진 리스트에는 중앙노드와 연결된 노드의 값이 담겨있다.
2차원 배열이고, 각 배열에는 모두 중앙노드가 담겨있기 때문에
각 배열에 같은 값이 있으면 반환해주도록 구현하였다.

회고

어떻게 풀었는지에 대해 이야기 하기 전에,, 나 조금 실력이 향상된거 같다...
역시 꾸준함은 배신하지 않는건가 우헿헤ㅔ헤
물론 다른 사람들 입장에서는 쉬운 문제겠지만
비기너 첫문제부터 난이도가 비슷했는데, 점점 풀이 시간이 짧아지고 서칭을 덜하기 시작했다!
약간 알고리즘 공부가 되었다 보다는 코딩하는 센스가 조금.. 아주 조금 생겼다 정도?!
앞으로도 열심히 하자는 말을 쓰며.. 마무리~


사실 이번에는 첫트에 어셉트돼서 시행착오가 없지만,,
풀이 시간이 줄어들고 나니 이제는 런타임을 줄일 수 있는 방법을 생각하게 된다..!
그래서 return 뒤에 break까지 해주면 더 돌지 않고 줄일 수 있지않을까..?했음..

class Solution:
    def findCenter(self, edges: List[List[int]]) -> int:
        arr=[]
        for i in range(2):
            arr.append(edges[0][i])

        for i in range(1,len(edges)):
            for j in arr:
                if j in edges[i]:
                    return j
                    break        


11ms가 줄긴 했지만 이게 맞는 방법인가...?!
허허 ..
그래서 나는 '그래프'라는 알고리즘에 대해 잘 몰라서 내가 푼것과 다른 풀이로 풀어야 할까봐 더 찾아보았다.

그런데 대부분 알고리즘이 크게 다르지 않았다.
풀어가는 방식만 다를 뿐 아이디어 자체는 똑같았다.

그래프 알고리즘에는 깊이우선탐색(저번에 했던 깊이 우선탐색이 그래프 알고리즘에 속한거구나!했음), 너비 우선탐색,다익스트라 알고리즘 등이 있는데
조금 찾아본 결과 내 코드가 틀린 코드인것 같지는 않다..!
다행?이다!

진짜진짜 다음주부터 미들러 문제도 함께 도전해봐야지..
왜냐면 아직 시험주간인 대학생이기 때무니다... 그럼 안뇽

profile
공부..일기....

0개의 댓글