-
[😭 leetcode] 334. Increasing Triplet SubsequenceAlgorithm/1일 1코테 2022. 10. 11. 20:13반응형
문제
https://leetcode.com/problems/increasing-triplet-subsequence/
증가하는 시퀀스가 3개인 경우를 찾는 문제
# [1,2,3,4,5] => 1,2,3 TRUE # [5,4,3,2,1] => 증가하는 시퀀스가 존재하지 않음. FALSE # [2,1,5,0,4,6] => 0,4,6 TRUE
나의 (시도했으나 장렬하게 못푼) 코드
class Solution: def increasingTriplet(self, nums: List[int]) -> bool: while nums: i = nums.pop(0) if nums.__len__() == 0: return False last_n = i count = 1 for n in range(0, len(nums)): if nums[n] > last_n: count += 1 last_n = nums[n] else: count = 1 last_n = i if count == 3: break if count == 3: return True
처음엔 단순하게 last_n 비교해가면서 하나씩 증가해가면 되겠네ㅋ
했다가 예외케이스를 우다다다 찾고는 실패..^^ 다른 방안이 떠오르지 않아ㅏㅏㅏ
그래서 결국 답지 참고 ㅎ
for문으로 nums의 n을 하나씩 출력 후 n보다 작은 2개의 값이 있으면 된다!!!!!
def increasingTriplet(self, nums: List[int]) -> bool: # min1은 제일 작은값 (triple 시퀀스 중) # min2는 그다음 작은 값 min1 = min2 = float('inf') for n in nums: # n보다 작은 2개의 값이 존재하면 성공! if min1 < min2 < n: return True # n이 제일 작은 값보다 작으면 변경 elif n <= min1: min1 = n # n이 min2보다 작으면 변경 elif min1 < n < min2: min2 = n return False
다들 천재같구먼..^^
반응형'Algorithm > 1일 1코테' 카테고리의 다른 글
[🥰 leetcode] 53. Maximum Subarray (0) 2022.10.14 [😭 leetcode] 976. Largest Perimeter Triangle (0) 2022.10.12 [🥰프로그래머스] 압축 (2018 KAKAO BLIND RECRUITMENT) (1) 2022.10.08 [🥰프로그래머스] 신고 결과 받기 [2022 KAKAO BLIND RECRUITMENT] (0) 2022.10.06 [😭 leetcode] 15. 3Sum (0) 2022.07.25