정렬 8

백준 10867번 c++ 풀이

안녕하세요 오늘은 중복 제외 정렬 문제를 풀어보겠습니다. 전략: 1. 먼저 정렬을 한 후, 출력할 때 전과 다른지 비교하여 같으면 출력하지 않고 같지 않으면 출력하고 x에 그 수를 대입한다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin>>N; vector v(N); for(int i =0; i>v[i]; } sort(v.begin(), v.end()); int x= -1001; for(int i= 0; i

BOJ 문제풀이 2021.09.19

백준 2108번 c++ 풀이

안녕하세요 오늘은 특정 알고리즘을 사용하지 않아도 되는 문제를 풀어보겠습니다. 이 문제는 다른것들은 어렵지 않은데 3번째로 출력해야하는 것이 조금 까다롭습니다. 우선은 8001짜리 길이의 배열을 만들어주어, -4000~4000의 숫자들을 관리할 수 있게 하겠습니다. 그런다음 int x로 인풋을 받고 그 값을 4000 더해준 배열의 위치의 값에 1을 더해줍니다. 배열의 원소들 중 최대값(최빈수)을 구해준다음, 그 최대값을 배열에서 검색해서 그 위치를 알아낸다음 두번째 값에다가 4000을 빼준값을 출력하면 됩니다. 코드: #include #include using namespace std; int main(){ int N, sum= 0; cin>>N; vector v; vector res(8001); for..

BOJ 문제풀이 2021.08.04

백준 1181번 c++ 풀이

안녕하세요 오늘은 문자를 정렬해야하는 문제를 풀어보겠습니다. 이 문제는 특이하게 문자열을 정렬해야하는 문제입니다. 처음에 입력을 받을때, 이름이 v인 vector에 입력을 받은 값이 원소로 있는 지 확인후에, 없으면 v.end()를 return 하기 때문에 비교연산자로 비교해주어서 만약 없으면 v에 입력받은 값을 대입해줍니다. STL에 있는 sort 함수를 이용해서 문자들을 정렬하게 되면 사전순으로 정렬이 됩니다. 이를 이용해서, 문자열의 길이가 같으면 sort하고, 그게 아니라면 문자열의 길이가 짧은 순으로 오름차순으로 정렬하겠습니다. 코드: #include #include using namespace std; int cp(string a, string b){ if(a.length() == b.leng..

BOJ 문제풀이 2021.08.03

백준 11651번 c++ 풀이

안녕하세요 오늘은 11650번과 연계되는 정렬 문제를 풀어보겠습니다. 이문제는 이나 헤더파일에 있는 함수인 sort 함수를 이용해서 풀어줍니다. 이차원 vector를 sort함수를 통해서 정렬해주면 2차원 원소까지 모두 고려해서 정렬해주므로 이 점을 이용해서 풀었습니다. 코드: #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin>>N; vector v(N, vector(2)); for(int i = 0; i>v[i][1]; cin>>v[i][0]; } sort(v.begin(), v.end()); for(int i = 0; i

BOJ 문제풀이 2021.08.03

백준 11650 c++ 풀이

안녕하세요 오늘은 정렬을 이용한 문제를 풀어보겠습니다. 여기서 알아야 할것은 이차원 배열에서 정렬을 하게 되면 배열을 정렬한다는건데, 배열을 비교할 때, 첫번째 원소부터 비교해서 정렬하게 됩니다. 따라서 따로 무언가 조치를 취하지 않아도 sort함수 하나만으로 문제를 쉽게 풀 수 있습니다. 코드: #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin>>N; vector v(N, vector(2)); for(int i = 0; i >v[i][0]; cin>>v[i][1]; } sort(v.begin(),v.end()); for(int ..

BOJ 문제풀이 2021.08.02