Algorithm/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / C++] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ

meeeeejin 2021. 1. 10. 22:22

 

๋ฌธ์ œ๋งํฌ: programmers.co.kr/learn/courses/30/lessons/42883

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ

 

programmers.co.kr

 

ํ’€์ด

 

k๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค๋Š” ๊ฒƒ์€ (number.length() - k)๊ฐœ์˜ ์ˆ˜๋ฅผ ๋ฝ‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ๋ฝ‘์•„์•ผ ๋˜๋Š” ์ˆซ์ž์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ n์ด๋ผ๊ณ  ํ•˜๋ฉด, number์—์„œ ๋’ค์—์„œ๋ถ€ํ„ฐ (n - 1)๊ฐœ์˜ ์ˆ˜๋ฅผ ๋‚จ๊ฒจ๋‘๊ณ  ๋‚˜๋จธ์ง€ ์ˆ˜ ์ค‘์—์„œ ์ œ์ผ ํฐ ์ˆ˜๋ฅผ ๋ฝ‘์œผ๋ฉด ๋œ๋‹ค. ๋‹ค์Œ ์ˆ˜๋Š” ๋ฐฉ๊ธˆ ๋ฝ‘์€ ์ˆ˜ ๋‹ค์Œ๋ถ€ํ„ฐ ๋’ค์—์„œ (n - 2)๊ฐœ์˜ ์ˆ˜๋ฅผ ๋‚จ๊ฒจ๋‘๊ณ  ์ œ์ผ ํฐ ์ˆ˜๋ฅผ ๋ฝ‘๋Š”๋‹ค. ์ด๋ฅผ n๊ฐœ ์ˆ˜๋ฅผ ๋ฝ‘์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. 

 

n: ๋ฝ‘์•„์•ผ ๋˜๋Š” ์ˆซ์ž์˜ ๊ฐœ์ˆ˜

picked: ์ด์ „์— ๋ฝ‘์€ ์ˆซ์ž์˜ index

 

number = "4177252841"์ผ ๋•Œ ํ’€์ด

  • 6๋ฒˆ์งธ ์ž๋ฆฌ
    => number ๋’ค์—์„œ 5๊ฐœ ์ˆ˜ ์ œ์™ธ => "41772" => ์ตœ๋Œ“๊ฐ’ 7 ์„ ํƒ, picked = 2
  • 5๋ฒˆ์งธ ์ž๋ฆฌ
    => number ๋’ค์—์„œ 4๊ฐœ ์ˆ˜ ์ œ์™ธ => "725" => ์ตœ๋Œ“๊ฐ’ 7 ์„ ํƒ, picked = 3
  • 4๋ฒˆ์งธ ์ž๋ฆฌ
    => number ๋’ค์—์„œ 3๊ฐœ ์ˆ˜ ์ œ์™ธ => "252" => ์ตœ๋Œ“๊ฐ’ 5 ์„ ํƒ, picked = 5
  • 3๋ฒˆ์งธ ์ž๋ฆฌ
    => number ๋’ค์—์„œ 2๊ฐœ ์ˆ˜ ์ œ์™ธ => "28" => ์ตœ๋Œ“๊ฐ’ 8 ์„ ํƒ, picked = 7
  • 2๋ฒˆ์งธ ์ž๋ฆฌ
    => number ๋’ค์—์„œ 1๊ฐœ ์ˆ˜ ์ œ์™ธ => "4" => ์ตœ๋Œ“๊ฐ’ 4 ์„ ํƒ, picked = 8
  • 1๋ฒˆ์งธ ์ž๋ฆฌ
    => number ๋’ค์—์„œ 0๊ฐœ ์ˆ˜ ์ œ์™ธ => "1" => ์ตœ๋Œ“๊ฐ’ 1 ์„ ํƒ, picked = 9

 

 

 

 

์†Œ์Šค์ฝ”๋“œ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <vector>
 
using namespace std;
 
string solution(string number, int k) {
    string answer = "";
    int n = number.length() - k;
    int picked = -1;
 
    for(int i = n; i > 0; i--) {
        int max = -1;
        for(int j = picked + 1; j <= number.length() - i; j++) {
            if((number[j] - '0'> max) {
                max = number[j] - '0';
                picked = j;
            }
        }
        answer += number[picked];
    }
 
    return answer;
}
cs

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

 

 

 

๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

 

 

 

728x90