[문제] 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net [문제 풀이] - 이중 배열을 사용해 비교하고자 하는 인덱스를 이전 인덱스들과 모두 비교하는 방법을 생각했음 [코드] #include using namespace std; void sorting(int* arr); int main() { int v[3]; unsigned int i=0, num; while(i>num; v[i]=num; i++; } sorting(v); } void sorting(int* arr){ int temp; for(int i=0;i
[문제] 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net [문제 풀이] - 우선 순위 큐를 사용 - 입력 받은 수가 0일 때, 큐가 비어 있으면 0을 출력하고 아니라면 가장 위에 있는 수를 출력 [코드] #include #include using namespace std; int n; // 입력받을 정수의 개수 priority_queue pq; int main() { cin.sync_with_stdio(0); // 시간 초과 해결 cin.tie(0); cin >> n; for (int i=0..
[문제] 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [문제 풀이] - 인덱스에 해당되지 않는 사람은 다시 순환큐의 성질을 이용해서 맨 뒤에 삽입하여 재검사 할 수 있도록 함 [코드] #include #include using namespace std; int main(){ int n,k; scanf("%d %d",&n,&k); queue q; for(int i=0;i
[문제] 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 www.acmicpc.net [문제 풀이] - 단어의 개수가 5로 고정이지만 우선 입력 받는 것으로 처리 - 문장을 입력받고 토큰 단위로 stack에 저장 - pop하여 단어 순서를 뒤집음 [코드] #include #include #include using namespace std; class Word{ public: string words; }; int main() { Word stack[52]; int top = -1; string str; int n; cin>>n; cin.i..
[문제] 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net [문제 풀이] - 우선 막대기를 입력받으며 stack에 저장 - 하나씩 pop하며 가장 높은 막대기와 비교 - 맨 오른쪽 막대기는 무조건 보이는 것임 [코드] #include #include using namespace std; int top=-1; int stack[100000]; int main() { int tc=0,num=0; int count=0, pre=0, com=0; cin>>tc; cin.ignore(); for(int i=0;i>num; ci..