Algorithm/Baekjoon

세무민의 코딩일기 : 백준 알고리즘 1427 [소드인사이드]

세기루민 2021. 1. 26. 16:03
728x90

소드인사이트 문제를 기존에 풀었었는데 

파이썬 공부 차원에서 풀어봤다.

 


결론적으로는 정렬을 하면 되는 문제!

우선 내가 C로 풀은 내용을 보면 

#include<stdio.h>
#include<string.h>

void Sortin(char *a, int b)
{
	int te;
	int max = 0;
	int index;
	for(int i = 0; i < b; i++)
	{
		if(b < 0 || a < 0)	return;
		max = 0;
		index = i;
		for(int j = i; j < b; j++)
		{
			if(max < a[j])
			{
				max = a[j];
				index = j;
			}
		}
		te = a[i];
		a[i] = a[index];
		a[index] = te;
	}
}


int main()
{
	char temp[101];
	gets(temp);
	int num = strlen(temp);
	Sortin(temp, num);
	printf("%s", temp);		

}

C로 풀었을 때는 함수를 생성해서 

호출하는 방식으로 풀었고 추가적으로 tmp를 구현해서 

정렬연산을 진행했다. 

사실 이렇게 푸는것도 괜찮겠지만......

곰곰히 생각해봤더니 Sort() 매소드를 두고 이렇게 풀었던 내 자신이 한심쓰....

파이썬으로 구현한 코드는!

n = input()
list = []

for i in range(len(n)):
    list.append(n[i])

list.sort(reverse=True)

for i in range(len(n)):
    print(list[i], end = '')

완전 간편!

말 그대로 파이썬에서는 sort(), sorted() 메소드를 지원하기 때문에 

이렇게 사용해주면 쉽게 정렬이 가능하다. 

실제로 정렬 알고리즘은 다양하게 많고 상황에 따라 성능차이가 심하다.

이런 경우에는 매소드를 사용하는것이 간편하고 코드수를 줄일 수 있다는 장점!

2년전에 했던 C 코드에서 파이썬 코드로 간편하게 성공! 

다음에는 더 알찬 포스팅으로 찾아오겠습니당~

 

728x90