제주 탈출 일지

[C++]프로그래머스 레벨 2 - 큰 수 만들기 본문

코딩 테스트

[C++]프로그래머스 레벨 2 - 큰 수 만들기

귀건 2020. 10. 11. 05:58
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/42883?language=cpp

 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr

 

세상에,.. 또 틀렸다..  stoi 썼을 때 안되길래, 컴파일러가 옛날꺼 사용하나보다 싶었는데, 그냥 내가 잘못써서 안됬던거 같다. .ㄻㄴㅇㄹ  사용하는 컴파일러는 C18이다.

 

 

 

1. string -> int 가 익숙하지 못했다.

 

string -> int (안해봄)

blockdmask.tistory.com/333

 

[C++] stoi, stof, stol, stod 함수에 대해서 (string to int)

안녕하세요. BlockDMask 입니다. 지난시간에는 C/C++에 기존에 존재하던 atoi, atof, atol등 char* 타입의 문자열을 정수로, 실수로 (=숫자로) 변경하는 함수에 대해서 살펴 보았습니다. 오늘은! C++11에서 부

blockdmask.tistory.com

string -> const char* -> int 변환 (이걸로 해봄)

blockdmask.tistory.com/39

 

[C++] string 클래스 변환(atoi, c_str()) 등 정리

C++에서 string, char *, int 간의 변환에 대해서 알아보겠습니다. (char* -> int 로 바꾸는 것을 보고싶다면, [바로가기]) (string -> int 로 바꾸는 것을 보고싶다면, [바로가기]) (int -> string 으로 바..

blockdmask.tistory.com

 

 

 

 

2. int -> string 또한 익숙하지 못했다.

blockdmask.tistory.com/334

 

[C++] to_string 함수에 대해서 (int to string)

안녕하세요. BlockDMask 입니다. 지난번에는 string을 int로 변경하는 stoi 함수에 대해서 알아보았습니다. 오늘은 int를 string으로 변경하는 to_string 함수에 대해서 알아보겠습니다. (string -> int 로 변..

blockdmask.tistory.com

3. 문제의 규칙을 파악하지 못헀다.

4. vector와 같은 stl을 사용하지 못했다.

== 총체적 난국.

 

#include <string>
#include <iostream>

using namespace std;

string solution(string number, int k) {
 	int n = number.size();
	string split[n];
	const char* cStr[n];
	int num[n];
	string answer;
    
	for(int i = 0; i < n; i++)
	{
		split[i] = number[i];
		cStr[i] = split[i].c_str();
		num[i] = atoi(cStr[i]);
		
		cout << num[i] << " " << endl;
		
	}
   
    int max = 0;
    int idx = 0;
    int num2[n-k];
   
    //num2 1 ~ n-k-1
    //num idx + 1 ~ n-k+1, idx ~ n-k+2 , ...
    
    for(int t = 0; k + t < n; t++ )
    {
        max = 0;
        for(int i = idx + 1; i < k+t+1; i++)
        {
            if(max < num[i])
            {  
                max = num[i];
                idx = i;
            }
        }
        num2[t] = num[idx];
        
    }
	for(int i = 0; i < n - k; i++)
	{
		string a = to_string(num2[i]);
		answer.append(a);
	} 
	return answer; 
    
}

int main()
{
	
}

 

테스트 케이스가 어떤 내용인지 보여주면 참 좋을텐데,, 그게 안나와서 어떤 부분에서 막혔는지 잘 모르겠다.

일단 시간초과가 여러 케이스가 떴고, 제공된 케이스에 대해서는 성공했다. 참 의아한 문제.

 

내일 다시 정리하고 다시 시험보도록 하겠다.

 

- 2트라이 - 

string -> int  변환과정을 없애고, 단순 비교로만 했는데 일부 테스트케이스에서 탈락했다. 제발 케이스를 보여줘,,

#include <string>
#include <vector>
 
using namespace std;
 #include <string>
#include <iostream>

using namespace std;

string solution(string number, int k) {
    
    int n = number.size();
    int numSize = n - k;
    char max = '0';
    int idx = 0;
    string answer;
        
    for(int i = 0; i < numSize; i++)
    {
        max = '0';
        for(int j = idx + 1; j < k+i+1; j++)
        {
            if(max < number[j])
            {
                max = number[j];
                idx = j;
            }
        }
        
        answer += max;
    }
    
   


	return answer; 
    
}
728x90
반응형
Comments