CS/백준, 프로그래머스 풀이

[10814] 나이순 정렬

JDJ 2022. 5. 27. 02:57
n = int(input())


item_list = []
for _ in range(n):
    age, name = map(str, input().split())
    age = int(age)
    item_list.append((age, name))

item_list.sort(key=lambda x : x[0]) #age 비교

for i in item_list:
    print(*i)

정답으로 제출한 파이썬 코드

나이순으로 정렬만 해주면 끝난다.

 

그런데 새삼 느낀 것은

아래는 같은 문제 C++코드인데 

#include<iostream>
#include<algorithm>

using namespace std;

struct Node {
	int x;
	char y[200];
	int z;
};

bool compare(Node a, Node b) {
	return a.x != b.x ? a.x < b.x : a.z < b.z;
}

int main() {
	Node b[100000];

	int numb;
	cin >> numb;

	for (int i = 0; i < numb; ++i) {
		cin >> b[i].x >> b[i].y;
		b[i].z = i;
	}

	sort(b, b + numb, compare);

	for (int i = 0; i < numb; ++i) {
		cout << b[i].x <<" "<< b[i].y<<'\n';
	}

	return 0;
}

 

엄청난 시간차이를 보인다.

compare코드에서 내가 뭔가를 했었나??

예전에 푼거라 기억이 안난다