[코드트리 챌린지]8주차 실력진단 및 투포인트

Arcanine·2023년 10월 29일
0

실력진단

음..... 중간에 순열 문제를 못풀었더니, 다음 단계로 못넘어가서 바로 점수 하락됐다. 문제를 못 풀어도 원하면 다음 문제를 풀 수 있으면 좋겠다 ㅠㅠ

순열 문제는 저번 테스트 때도 나온 문제였는데, 새로운 방법으로 풀어봐야지 하고 시도하다 오류를 못잡아서 시간초과 되었다 ㅠㅠ

투포인트

이번엔 새로운 투포인트 유형을 익혀보자
문제: https://www.codetree.ai/missions/8/problems/max-interval-without-overlapping-numbers?&utm_source=clipboard&utm_medium=text

와 투포인트를 몰랐다면 완전탐색으로 풀기 쉬운 문제...

이 문제의 경우 array_count 라는 배열을 이용해 풀어준다.
array_count 를 나올 수 있는 수만큼 크기를 만든 후 i 와 j 를 밀당해준다.

MAX_R = 100000
n = int(input())
arr = [0] + list(map(int, input().split()))
count_array = [0] * (MAX_R + 1)
ans = 0
j = 0

for i in range(1, n + 1):
	# j+1 이 범위내에 있고, 해당 숫자가 나온적이 없으면 계속
    while j + 1 <= n and count_array[arr[j + 1]] != 1: 
        count_array[arr[j + 1]] += 1
        j += 1

    ans = max(ans, j - i + 1)

    count_array[arr[i]] -= 1

print(ans)

투포인터도 기준이 되는 식에서 변형이 있는거기 때문에 잘 외워두자

마무리

8주동안 코드트리 챌린지를 하면서 알고리즘에 대한 사고의 폭이 넓어진게 느껴졌다.
처음에 비해 뒤로 갈수록 현생에 치여 열심히 연습을 못한게 참 아쉽다.
그래도 이 블로그 챌린지 덕에 벌써 그만 뒀을 공부를 지금까지 지속할 수 있어 너무 좋았다!!

불꽃 잔디를 언젠가 다시 심어보겠다...!

profile
Flutter Developer

0개의 댓글