(C++) 백준 2751번 - 수 정렬하기 2

코딩너구리·2025년 10월 13일

코딩 문제 풀이

목록 보기
29/266

https://www.acmicpc.net/problem/2751

문제

> N개의 수가 주어졌을때, 오름차순으로 정렬하는 프로그램을 작성해라.

접근

수를 전부 입력받고 sort 정렬해 출력한다.

문제해결

> 단순 오름차순 정렬이므로 sort()를 사용하였다.
> 벡터로 N의 값을 입력받고 정렬 후 출력한다.

코드

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

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	
	int N;
	cin >> N;

	vector<int> num(N);
	for (int& i : num) cin >> i;

	sort(num.begin(), num.end());

	for (int i : num) cout << i << '\n';
}

후기

문제 자체는 쉬웠기에 c++스타일 반복문을 써서 했다.
입력을 받는 반복문에 int뒤에 &가 없으면 num의 각 요소가 x에 복사되어 x값만 변하기 때문에 마지막에 출력문 같은경우엔 그렇게 사용해도 되지만 입력을 받을 땐 값을 변화시켜야 하기 때문에 "참조"를 해줘야한다. 그래서 &가 필요하다.
그리고 벡터의 초기값을 주지않고 push_back으로 바로 요소를 넣고자 한다면 c++스타일이 아닌 for(i = ...)을 써야한다.
참조로 받아오는 i가 num이 비어있으므로 아무것도 가져올 수 없기 때문에 반복문이 돌아가지않기 때문이다.
자잘한거 토시하나 하나 중요한 의미가있기에 이를 알아가는것이 흥미롭다.

0개의 댓글