티스토리 뷰
파티에 초대된 사람들의 정보가 리스트로 주어지고, 각 리스트의 요소는 그 사람이 다른 사람을 알고 있으면 1, 모르면 0으로 주어진다. 유명인사(Celebrity)는 다른 사람은 모두 모르지만 모든 사람이 그 사람을 알고있고, 그 사람은 오직 1명이거나 없다. 없으면 -1 있다면 그 사람의 인덱스를 반환하면 된다.
Constraint의 n의 최대값이 100 밖에 되지 않아 3개의 반복문을 중첩(O(n))해 풀어 모든 테스트 케이스를 만족했지만, 효율적이진 않다. 효율적인 풀이는 O(n)으로도 가능한데 주어진 리스트의 0번부터 Celebrity 용의자를 추척하고(knows(celebrity, i)가 False 일 때까지), 용의자가 누군가 한 명이라도 알아 True을 반환하면 -1을 그렇지 않다면 해당 용의자의 index를 반환할 수 있다.
class Solution:
def findCelebrity(self, n: int) -> int:
for i in range(n):
flag = 0
for j in range(n):
if knows(j, i) == 0:
flag = 1
break
if flag == 0:
for j in range(n):
if i == j:
continue
if knows(i, j) == 1:
flag = 2
break
if flag == 0:
return i
return -1
반응형
'기술(Tech, IT) > 리트코드(LeetCode)' 카테고리의 다른 글
[LeetCode] 296. Best Meeting Point (0) | 2023.03.02 |
---|---|
[LeetCode] 290. Word Pattern (0) | 2023.03.01 |
[LeetCode] 272. Closest Binary Search Tree Value II (0) | 2023.02.18 |
[LeetCode] 270. Closest Binary Search Tree Value (0) | 2023.02.17 |
[LeetCode] 261. Graph Valid Tree (0) | 2023.02.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Android
- Python
- join
- 파이썬
- machine learning
- 딕셔너리
- 오블완
- The Economist Espresso
- 소켓 프로그래밍
- Hash Map
- defaultdict
- leetcode
- Computer Graphics
- tf-idf
- vertex shader
- java
- 머신 러닝
- The Economist
- ml
- 이코노미스트
- 리트코드
- socket programming
- 안드로이드
- C++
- 이코노미스트 에스프레소
- min heap
- I2C
- 티스토리챌린지
- DICTIONARY
- 투 포인터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형