https://school.programmers.co.kr/learn/courses/30/lessons/42883
λ¬Έμ μ€λͺ
μ΄λ€ μ«μμμ kκ°μ μλ₯Ό μ κ±°νμ λ μ»μ μ μλ κ°μ₯ ν° μ«μλ₯Ό ꡬνλ € ν©λλ€.
μλ₯Ό λ€μ΄, μ«μ 1924μμ μ λ κ°λ₯Ό μ κ±°νλ©΄ [19, 12, 14, 92, 94, 24] λ₯Ό λ§λ€ μ μμ΅λλ€. μ΄ μ€ κ°μ₯ ν° μ«μλ 94 μ λλ€.
λ¬Έμμ΄ νμμΌλ‘ μ«μ numberμ μ κ±°ν μμ κ°μ kκ° solution ν¨μμ 맀κ°λ³μλ‘ μ£Όμ΄μ§λλ€. numberμμ k κ°μ μλ₯Ό μ κ±°νμ λ λ§λ€ μ μλ μ μ€ κ°μ₯ ν° μ«μλ₯Ό λ¬Έμμ΄ ννλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±νμΈμ.
μ ν 쑰건
- numberλ 2μ리 μ΄μ, 1,000,000μ리 μ΄νμΈ μ«μμ λλ€.
- kλ 1 μ΄μ numberμ μλ¦Ώμ λ―Έλ§μΈ μμ°μμ λλ€.
μλ§μ μκ³ λ¦¬μ¦μ λ μ¬λ¦¬κΈ° νλ€μλ€.
그리λλκΉ κ·Έλ₯ μλ€λ§ λΉκ΅νλ©΄ λλ €λ?!νκ³ μ²μμλ μ«μμ μ/λ€λ§ λΉκ΅ν΄μ λ ν°μλ₯Ό λ¨κ²¨λκ³ ,
μμ μλ₯Ό eraseνλ λ°©λ²μΌλ‘ νμλλ°
μ΄μ°μ μ° μ½λμ€ν ν μΌλ λ€ λ§μμ§λ§, μ±μ μ κ²°κ³Όλ μ²μ°Ένλ€....
κ·Έλμ λκ° μ΄ λ°©λ²μ΄ μλλ―ν΄μ ꡬκΈλ§νμ. π€
μ€λͺ μ μ½κ³ λ μ΄ν΄κ° λ°λ‘ μλμ΄μ μ¬λ¬λ² μκ°ν΄λ³΄κ³ μ 리ν΄λ³΄μλ€.
1. numberκ³Ό answerμ μμμλΆν° μμκ° κ·Έλλ‘ μ΄μ΄μ§κ³ , number.size() - k κ°μ μ«μκ° νμνλ―λ‘
iλ²μ§Έλ‘ numberμ μ«μλ₯Ό λ½μΌλ €λ©΄ κ·Έ λ€μ μ΅μν number.size()-k-i κ°μ μ«μκ° λ μμ΄μΌ νλ€.
2. number.size() - k - i = number.size() - ( k + i )
3. λ°λΌμ numberμΈλ±μ€ νμ μ λ½μ μ«μμ μΈλ±μ€ μμμ start ~ k+i κΉμ§μ΄λ€.
λμ νμ΄
#include <string>
#include <vector>
using namespace std;
string solution(string number, int k) {
string answer = "";
int answersize = number.size() - k;
int idx = 0;
for(int i = 0; i < answersize; ++i){
char maxint = number[idx];
int maxidx = idx;
for(int j = idx; j <= k+i; j++){ // k + answersize = number.size()
if(maxint < number[j]){
maxint = number[j];
maxidx = j;
}
}
idx = maxidx + 1;
answer += maxint;
}
return answer;
}
'π μκ³ λ¦¬μ¦ > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++/PGS] Lv.2 : μμ μ°ΎκΈ° (μμ νμ) (0) | 2023.03.03 |
---|---|
[C++/PGS] Lv.2 : ꡬλͺ λ³΄νΈ (GREEDY) (0) | 2023.03.03 |
[C++/PGS] Lv.2 : νλ¦°ν° (Queue) (0) | 2023.03.02 |
[C++/PGS] Lv.3 : λ¨μ΄ λ³ν (DFS/BFS/λ°±νΈλνΉ) - μμ νμ (0) | 2023.02.24 |
[C++/PGS] Lv.1 : 체μ‘볡 (GREEDY) (0) | 2023.02.23 |