전체 글
-
[C++] 선택정렬(Selected Sort)C_C++ 프로그래밍/C_C++ 프로그래밍 2019. 4. 1. 22:15
간단하게 말해서, 선택 정렬은 입력된 값 중 원소를 선택하여 정렬하는 방식이다. ...더보기 이해 (원소1), (원소 2), 원소 3, 원소 4, 원소 5 (원소 1), 원소 2, (원소 3), 원소 4, 원소 5 ...... (원소 1), 원소 2, 원소 3, 원소 4, (원소 5) 까지 비교하여 원소 1에 최소 값이 들어갔으므로(오름차순이라면) 이제는 index 1부터 정렬을 시작하여 원소 1, (원소 2), (원소 3), 원소 4, 원소 5 ... 원소 1, (원소 2), 원소 3, 원소 4, (원소 5) 까지 비교하는 하는 방식이다. 최종적으로는 원소 1, 원소 2, 원소 3, (원소 4), (원소 5) 를 비교하게 된다. #include using namespace std; int main(){..
-
[백준 1107] 리모컨알고리즘/백준 2019. 3. 29. 03:06
생각보다 정답률이 낮아 깜짝 놀랐지만, 문제 풀면서.. 왜 낮은지 이해가 된 문제 중간에 오답이 떠서 헤맨 문제입니다. ...더보기 출처 : https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 주어지며, 같은 버튼이 여러번 주어지는 경우는 없다. www.acmicpc.net 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다...
-
[백준 1476] 날짜 계산알고리즘/백준 2019. 3. 29. 02:07
쉬운 문제이다. 간단하게 날짜 범위를 생각하여, 계산하고 풀면 충분히 정답인 문제 출처 : https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1 www.acmicpc.net #include using namespace..
-
[C++] pair sortC_C++ 프로그래밍/C_C++ 프로그래밍 2019. 3. 21. 19:33
C++의 STL에서 vector 사용시, pair container와 함께 쓰이고는 하는데,이때, x좌표 오름차순 혹은 y좌표 오름차순으로 나타내고자 할때, sort의 세번째 인자로사용자 함수 bool compare를 작성하여, 사용하기도 한다. 1234567891011121314151617181920212223242526272829#include#include#include using namespace std; bool sortbyfirst(const pair &a, const pair &b) { return (a.first > n; // 입력 횟수 vectorv; while(n--){ int x,y; cin >> x >> y; v.push_back(make_pair(x,y)); } sort(v.beg..
-
[백준 1517] 버블 소트알고리즘/백준 2019. 3. 21. 18:14
중간에 논리오류가 발생했지만, 수정 뒤에 정상적으로 출력이 가능하다.어디가 잘못된 건지, 곰곰히 생각해봐도 아직 모르겠지만, 중간에 바꾼건 사실 ans += (long long)(mid - i + 1);이 부분이 전부이긴하다. 출처 : https://www.acmicpc.net/problem/1517 문제 N개의 수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에 대해서 버블 소트를 수행할 때, Swap이 총 몇 번 발생하는지 알아내는 프로그램을 작성하시오. 버블 소트는 서로 인접해 있는 두 수를 바꿔가며 정렬하는 방법이다. 예를 들어 수열이 3 2 1 이었다고 하자. 이 경우에는 인접해 있는 3, 2가 바뀌어야 하므로 2 3 1 이 된다. 다음으로는 3, 1이 바뀌어야 하므로 2..
-
[백준 1074] Z알고리즘/백준 2019. 3. 21. 02:14
분할정복 문제이다. "Z" 방향으로 탐색을 하면서, 주어진 좌표가 몇 번째에 탐색이 되는지 출력하는 문제이다. 0 1 2 3 이라고 하면, 0 -> 1 -> 2 -> 3 순으로 탐색이 되며, 분할 탐색을 해가면서 각 좌표마다 입력 값과 비교하여, 결과를 출력한다. 출처 : https://www.acmicpc.net/problem/1074 문제 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다.만약, 2차원 배열의 크기가 2^N * 2^N라서 왼쪽 위에 있는 칸이 하나가 아니라면, 배열을 4등분 한 후에 (크기가 같은 2^(N-1)로) 재귀적으로 순서대로 방문한다..
-
[백준 2448] 별 찍기 - 11알고리즘/백준 2019. 3. 20. 20:27
생각보다 난 별 찍기를 못하는 것 같다.꽤 오랜시간 동안, 해맨 문제. 출처 : https://www.acmicpc.net/problem/2448 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10) 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 예제 입력 1 24 예제 출력 1 * * * ***** * * * * * * ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***..