오전공부 5.20

코변·2022년 5월 19일
0

아침공부

목록 보기
4/4

05:30 ~ 07:00

Remove Duplicates from Sorted Array

배열의 길이를 변화시키지 않으면서 중복값을 중복되지 않은 값 뒤로 보내고 중복되지 않은 값의 길이 k를 반환하는 문제

before = 9
cnt = 0
for i in range(len(nums)):
	if before != nums[i]:
    	cnt+=1
        before = nums[i]

처음에는 다음과 같이 before값을 업데이트하면서 검사하는 로직을 생각했다.

그런데 여기서 빌드업을 할 때마다 원하는대로 로직이 안 굴러간다는 생각이 들었고

급기야는 nums안의 값을 문자열로 바꿔 문자열을 포함한 리스트를 정렬하려고 했다.

TypeError: '>' not supported between instances of 'int' and 'str'

그래서 다음과 같은 에러를 만나게 됐고 내가 아직 프로그래밍언어에 대한

이해가 모자라다는 사실을 더 깊이 깨닫게 되었다.

결국 혼자 공부하는 시간을 넘겨버려서 디스커션을 통해 몇가지 힌트를 얻었고

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        cnt = 0
        for i in range(1, len(nums)):
            if nums[i-1] == nums[i]:
                cnt+=1
            else:
                nums[i - cnt] = nums[i]
        return len(nums) - cnt

다음과 같이 정답을 제출하였다.

keep - 제한시간 내에 못풀면 디스커션으로 힌트를 얻고 빠르게 다음 문제로 넘어가기
problem - 문제를 꼼꼼히 읽지 못함, 로직을 생각하기 전에 손가락으로 생각하려고 함
try - 문제를 끝까지 보기, 코딩을 바로 하기 보다는 차분히 앉아서 명상하면서 로직 생각해보기

profile
내 것인 줄 알았으나 받은 모든 것이 선물이었다.

0개의 댓글