본문 바로가기

728x90

정렬알고리즘

[백준] 1449번 : 수리공 항승 - C/C++ 문제에서 말하고 있는 내용은 단순하다.'물이 새는 위치 N개를 길이가 L인 테이프 몇 개를 이용해서 구멍을 막을 수 있는가'이다.하지만 고려해야할 부분이 존재한다.테이프의 길이가 L이고, 어떤 지점 x에 붙이면 x - 0.5부터 x + L - 0.5까지를 막을 수 있다라는 것이다.예를 들어서, 물이 새는 위치가 1일 때, 테이프는 0.5 ~ 2.5까지를 막는다.그 다음 구멍이 3에 있다면, 기존 테이프로는 못 막기 때문에 새로운 테이프가 필요하다.그렇기 때문에 기준점과 테이프로 가려지는 범위를 정확하게 구하는 것이 중요하다.   그 점을 고려하여 문제를 풀어보자. 물이 새는 위치와 테이프의 길이, 그리고 필요한 테이프의 개수를 선언해주자.그리고 물이 새는 위치는 벡터에 저장하여 정렬과 순차접근이 가능하도.. 더보기
[백준] 2693번 : N번째 큰 수 - C/C++ 문제를 읽고 해결 과정을 순차적으로 생각해 보았다. 1. 입력받고자하는 테스트 케이스 N 입력2. 크기가 10인 배열 선언3. 반복문을 돌면서 배열에 값 넣기4. 오름차순 혹은 내림차순으로 정렬5. 결과 출력    문제 풀이 시작.테스트 케이스 입력과 크기 10인 배열 선언고정된 크기의 배열 aryint n;int ary[10];  반복문을 돌며 배열에 값은 입력하면 아래와 같다.for(int i=0;i> ary[j]; }}  배열에 값을 입력했으니, 정렬을 해야한다.정렬은 sort( , , ) 를 통해 구현할 수 있으며,c++에서의 sort는 quick sort(퀵 정렬)로 설정되어있다.#include ...sort(ary,ary+10); 기본이 오름차순이기 때문에 우리는 출력할 때 주의해야한다... 더보기

728x90