본문 바로가기
📊 Algorithm/Algorithm plus+

🎫 클래스 6 밀기 ..ing

by 정람지 2024. 2. 2.

좋아 ~ 플래티넘 14레이팅 채우기용 

클래스 밀기~~

 

플래문제...?

너무 빡센데


15 / 1

 

2533번: 사회망 서비스(SNS)

페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망

www.acmicpc.net

뭐야

어려워

어떻게푸는데

 

 

트리에서 현재 노드:

 

얼리어답터가 아닌 경우

=> 자식들이 모두 얼리어답터여만 함

 

얼리어답터인 경우

=> 상관없음

 

DP :  해당 노드가 각각 얼리어답터일 때 / 얼리어답터가 아닐 때 구분하여 최적해 찾기

 

 

아니 흑흑 클래스 5는 그래도 덤벼볼 만 했는데

6은 처음부터 

뭐지ㅜ

DP라서그런가...

 

pypy - 속도빠르지만 파이썬모다 메모리 효율이 떨어짐


15 / 2

 

 

14725번: 개미굴

첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N (1 ≤ N ≤ 1000)개가 주어진다. 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 정

www.acmicpc.net

으음

트리 잘 어케 만든 다음에

DFS 돌려서 방문 순서대로 찍으면 될 것 같은데

 

 

 트리만들기

- 정보 받고 하나씩 보자

- 이 음식칸 아래 굴에 이미 이 음식이 있다면 그 음식칸으로 이동하고 / 없다면 이 음식칸 아래에 새로운 딕셔너리 생성

 

출력

- 각 칸마다 아래 음식칸 정렬 후 형식 맞춰 출력

- DFS모습을 취하며 순회


15 / 3

 

13334번: 철로

입력은 표준입력을 사용한다. 첫 번째 줄에 사람 수를 나타내는 양의 정수 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 각 줄에 정수 쌍 (hi, oi)가 주어진다. 여기서 hi와 oi는 −100,000,000이상, 100,000,0

www.acmicpc.net

당연히 한 칸씩 철로를 옮겨가면서 작업할 수는 없기 때문에 

범위 -1억 1억

 

출발지도착지묶음들을 기준으로

정렬된 묶음들을 하나씩

우선순위 큐에 넣어서 

끝점 - 철로의 길이

에 위배되는 시작점들을 다 제외!

후 결과최댓값 갱신

 

 

 

휴...왜이렇게어려운거야


15 / 4

 

15824번: 너 봄에는 캡사이신이 맛있단다

한 줄에 모든 조합의 주헌고통지수 합을 1,000,000,007로 나눈 나머지를 출력한다.

www.acmicpc.net

일단 모든 조합을 구해야 한다

그 조합들 각각에서 최대값-최솟값의 합들을 구하면 됨

 

조합을 다 구하면 O(2^N) 시간초과나므로

 

각 조합의 최댓값 - 각 조합의 최솟값 == (각 숫자가 최댓값일 경우 - 각 숫자가 최솟값 일 경우) * 현재 숫자

로 풀면 됨!!

 

그냥 파이썬 pow 내장함수 쓰면 부분 점수만 받으므로 분할 정복으로 구현해야 한다

 

거듭제곱 더 더 더 빠르게 with 파이썬(Python)

똑같은 수나 문자를 여러 번 곱하는 것을 거듭제곱이라고 한다. 흔히 우리가 말하는 2의 4제곱(2^4=16), 5의 3제곱(5^3=125) 등은 거듭제곱을 표현한 것이다. 당연히 코드를 통해서 이를 빠르게 계산할

seongonion.tistory.com

휴우우..

 

그래도!와!! 플래티넘이다!!!!

레전더리한별도뽑앗다