알고리즘/백준 문제풀이
![[C++] 백준-좌표 압축(18870번)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxzh3C%2FbtrKHUHVDiQ%2FeMYcB9ZnCop0RjXceY5Qe0%2Fimg.png)
[C++] 백준-좌표 압축(18870번)
문제 풀이 int n; cin>>n; map m; int* arr=new int[n]; map m; 형태의 맵을 선언합니다. (key=좌표값, value=해당 좌표값이 등장한 인덱스) int* arr=new int[n]; 정답을 출력하기 위해서 좌표 압축한값이 순서대로 저장되는 배열. for(int i=0; i>temp; m[temp].push_back(i); } 좌표를 입력받고, m[좌표]에다가 몇번째로 입력받은 좌표인지(인덱스)를 push_back해줍니다. int count =0; for(auto iter=m.begin(); iter!=m.end(); iter++) { for(int i=0; isecond.size(); i++) { arr[iter->second[i]]=count; } count++;..
![[C++] 백준-나이순 정렬(10814번)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJfYIQ%2FbtrKsELjT26%2FqZ0kV8fdyP3wF8jdioQSP0%2Fimg.png)
[C++] 백준-나이순 정렬(10814번)
문제 풀이 int n; cin>>n; vector v; //나이, 가입번수, 이름 for(int i=0; i>age>>name; tuple t=make_tuple(age,i,name); v.push_back(t); } 회원수 n을 입력받습니다. 나이, 가입순서, 이름 을 저장하기위해서 tuple을 사용했습니다. (#include 필요) tuple을 사용한다면 한번에 2개 이상의 변수를 묶어서 사용이 가능합니다. tuple이란? sort(v.begin(),v.end()); sort함수를 사용해서 정렬해줍니다. 이때 tuple을 썼기 때문에 매우 편하게 정렬이됩니다. tuple을 저장할때 첫 번째에 나이, 두 번째에 가입번수, 세 번째에 이름 을 저장했기 때문에, sort함수를 쓰면 자동으로 우선적으로 나이..
![[C++] 백준-단어 정렬(1181번)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDLoSv%2FbtrKktKmbuc%2FOBmaAkK4zpKBdn6GJ4Kuv1%2Fimg.png)
[C++] 백준-단어 정렬(1181번)
문제 입력받을 단어의 갯수 n을 입력받습니다. 단어를 입력받습니다. 길이순, 길이가 같다면 사전순으로 정렬하여 출력합니다. 풀이 int n; cin>>n; string StrArr[20001]; for(int i=0; i>StrArr[i]; } n을 입력받고 단어를 입력받습니다. sort(StrArr,StrArr+n,comp); c++의 sort()함수를 이용합니다. 이때 comp는 제가 직접 정의한 사용자정의함수입니다. 문제의 조건에 맞춰서 비교함수를 만들어 줬는데 그 코드는 아래와 같습니다. bool comp(const string &a, const string &b) { if(a.length()==b.length()) { return a

백준-좌표 정렬하기(11650번)
문제 n을 입력받습니다. n개만큼 (x,y)쌍을 입력받습니다. x를 기준으로 오름차순으로 정렬하는데, 같다면 y를 비교하여 오름차순으로 정렬합니다. 출력합니다. 풀이 cin.tie(NULL); ios_base::sync_with_stdio(false); int n; cin >> n; 첫 두줄은 입출력속도를 빠르게 하기 위한 코드입니다. n을 입력받습니다. vector v; for (int i = 0; i > a >> b; p = make_pair(a, b); v.push_back(p); } (x,y)쌍을 받기 위해 pair를 이용합니다. n만큼 pair를 입력받고 vector v에 넣어줍니다. pair란? 링크바로가기 sort(v.begin(..

백준-소트인사이드(1427번)
문제 숫자를 입력받고 각 자릿수를 내림차순으로 정렬하는 문제입니다. 풀이 string str; cin >> str; string형태로 수를 입력받습니다. vector v; int len = str.length(); for (int i = 0; i str; vector v; int len = str.length(); for (int i = 0; i ..

백준-통계학(2108번)
문제 풀이 int n; // n은 홀수 cin >> n; int *num = new int[n]; int AM = 0; //(arithmetic mean)산술평균 for (int i = 0; i > temp; num[i] = temp; AM += temp; //산술평균 계산용 } cout MaxCount라면 최빈값(choi)=num[i-1]으로 갱신하고 MaxCount=count로 갱신해줍니다. 그리고 is_first=true로 초기화해줍니다.(첫번째 최빈값이기 때문에) 그게 아니라 count==MaxCount이고, is_first==true라면 현재시점에서 2번째로 작은 최빈값이기때문에 최빈값(choi)=num[i-1]으로 갱신하고 is_first=fal..

백준-커트라인(25305번)
문제 n,k를 입력받습니다. n명의 점수를 입력받고 k번째 높은 점수를 출력해줍니다. 풀이 #include #include #include using namespace std; int main() { int n,k; vector v; cin>>n>>k; for(int i=0; i>temp; v.push_back(temp); } sort(v.begin(),v.end()); cout

백준-수 정렬하기(2750번)
문제 n을 입력받습니다. n만큼의 수들을 입력받고, 오름차순 정렬 후, 출력해줍니다. 풀이 #include #include #include using namespace std; int main() { vector v; int n; cin>>n; for(int i=0; i>input; v.push_back(input); } sort(v.begin(),v.end()); for(int i=0; i