https://school.programmers.co.kr/learn/courses/30/lessons/154539
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ2.
1. ์ฒซ ์๋ : 94.6์ (ํ ์ผ 20, 22๋ฒ ์๊ฐ์ด๊ณผ)
๋ค์์๋ถํฐ ํ์ํ๋ฉด์, ์ต๋๊ฐ์ ๊ฐฑ์ ํด์ฃผ๊ณ
์์ ์๋ฅผ ๋ง๋๋ฉด ๊ทธ ์์น๋ถํฐ ์ต๋๊ฐ๊น์ง์ ๋ฒ์์์๋ง for๋ฌธ์ ๋๋ ค์ฃผ์๋ค.
๊ทธ๋ฌ๋๋ 37๊ฐ ์ค์ 2๊ฐ ํ๋ ค์..์คํจ๐ฅน ์๊ฐ์ ๋ ์ค์ฌ์ผ ํ๋ค!!!
2. ๋๋ฒ์งธ ์๋ - ์ฑ๊ณต ๐ฏ๐ฏ๐ฏ
๋ด ๊ธฐ์กด ์ฝ๋์์ ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ [10, 1, 1, 1, 1, 1, 1, 1, ... 1, 12] ์ด๋ฐ ๊ฒฝ์ฐ์ผ ๊ฑฐ๋ผ๊ณ ์ถ์ ํ๋ค.
๊ทธ๋์, ์ฐ๊ฒฐ๋ฆฌ์คํธ ๋๋์ผ๋ก ๊ฐ ์ธ๋ฑ์ค๊ฐ ๋ณธ์ธ๋ณด๋ค ๋ค์์๋ ํฐ ์์ ์์น๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด
๋ฐ๋ณต๋ฌธ์์ ์์น ์ด๋์ ํตํด ๋ ํจ์จ์ ์ธ ํ์์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ ๊ฒฐ๊ณผ๋ 100์ !!!
๋์ ํ์ด
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer(numbers.size(), -1);
int max = numbers[numbers.size()-1];
int maxIdx = numbers.size()-1;
int next[1000001] = {-1,}; // ๋ ๋ค์์ผ๋ก ํฐ ์์ ์์น๋ฅผ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์ ์ฅ
for(int i=numbers.size()-2; i>=0; --i){
if(numbers[i] >= max){
max = numbers[i];
maxIdx = i;
next[i] = maxIdx;
}
else{
for(int j=i+1; j<=maxIdx; ++j){
if(numbers[i]<numbers[j]) {
answer[i] = numbers[j];
next[i] = j;
break;
}
else{
j = next[j]-1;
}
}
}
}
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.2 : ๋ชจ์์ฌ์ (0) | 2025.05.15 |
---|---|
[C++/PGS] Lv.3 : ํฉ์น ํ์ ์๊ธ (BFS/๋ค์ต์คํธ๋ผ) (0) | 2025.05.15 |
[C++/PGS] Lv.2 : ๋กค์ผ์ดํฌ ์๋ฅด๊ธฐ (0) | 2025.05.14 |
[C++/PGS] Lv.2 : ํํ (2019 ์นด์นด์ค) (0) | 2025.05.14 |
[Javascript/PGS] Lv.2 : [1์ฐจ] ์บ์ (2018 KAKAO) (0) | 2025.05.14 |