본문 바로가기
1-4. 코딩테스트 문제집(진행중)/PCCP(Lv1)

[PCCP] Lv1: 문자열 내 마음대로 정렬하기(12915) 해설

by cogito21_cpp 2024. 12. 25.
반응형

문제

- 문제 링크: 문자열 내 마음대로 정렬하기

 

해설

- 자료구조: 

- 시간복잡도: 

 

(풀이과정)

1) 

2) 

3) 

4) 

 

코드

(C언어)

solution 1)

더보기

solution 1

#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C++)

solution 1)

더보기
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int i = 0;
bool str_sort(string a, string b)
{
    if (a[i] == b[i])
        return a < b;
    else
        return a[i] < b[i];
}

vector<string> solution(vector<string> strings, int n) {
    vector<string> answer;
    answer = strings;
    i = n;
    sort(answer.begin(), answer.end(), str_sort);
    return answer;
}

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C#)

solution 1)

더보기
#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Java)

solution 1)

- N: strings의 길이

- Arrays.sort(): O(NlogN)

- 총 시간 복잡도: O(NlogN)

더보기
import java.util.Arrays;

class Solution {
    public String[] solution(String[] strings, int n) {
        Arrays.sort(strings, (o1, o2) -> o1.charAt(n) == o2.charAt(n) ?
        o1.compareTo(o2) : Character.compare(o1.charAt(n), o2.charAt(n)));
        
        return strings;
    }
}

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Python)

solution 1)

- N: strings의 길이

- sorted(): O(NlogN)

- 최종 시간 복잡도: O(NlogN)

더보기
def solution(strings, n):
    return sorted(strings, key=lambda x: (x[n], x))

solution 2)

더보기
def solution(strings, n):
    answer = []
    answer = sorted(strings, key=lambda x: (x[n], x))
    return answer

solution 3)

더보기
import

 

(JavaScript)

solution 1)

- N: strings의 길이

- sort(): O(NlogN)

더보기
function solution(string, n) {
    return string.sort(function (a, b) {
        if (a[n] === b[n]) {
            return a > b ? 1 : -1;
        } else {
            return a[n] > b[n] ? 1 : -1;
        }
    });
}

solution 2)

더보기
import

solution 3)

더보기
import

 

반응형