전체 글 223

[백준] 11651번: 좌표 정렬하기 2

https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제 이해 https://chagaun-omija.tistory.com/143 [백준] 11650번: 좌표 정렬하기 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어..

[백준] 11650번: 좌표 정렬하기

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제 이해 아주 간단한 sort문제로 기본 sort()함수를 사용하되, 비교 함수를 짜서 넣어주면 된다. 작성 코드 #include #include #include using namespace std; int N; vector v; bool compare(pair a, pair b){ if(a.first < b.first) return true..

[백준] 1436번: 영화감독 숌

https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제 이해 Brute-force한 방식으로 모든 숫자를 시도해보면 된다. 모든 숫자를 돌면서 연속으로 6이 있는지를 확인하면 된다. 작성 코드 작성 언어: C++ #include int N; int arr[10]; int continuous(int n){ int r = 0; for(int i = 0; i1){ if(arr[i] == 6 && arr[i-1] == 6 && arr[i-2] == 6..

[백준] 2447번: 별 찍기 - 10

https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 문제 이해 작성 코드 #include void star(int n, int i, int j){ if(n==1) { printf("*"); return; } if(i%n/(n/3) == 1 && j%n/(n/3) == 1){ printf(" "); } else { star(n/3, i, j); } } int main(void){ int n; scanf("%d", &n); ..

[C] 정렬: qsort()

C에서 기본 제공하는 정렬함수: qsort() - quick sort를 기반으로 함 - stdlib.h 헤더 include 해야 함 - 레퍼런스: https://en.cppreference.com/w/c/algorithm/qsort qsort, qsort_s - cppreference.com void qsort( void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *) ); (1) errno_t qsort_s( void *ptr, rsize_t count, rsize_t size, int (*comp)(const void *, const void *, void *), en.cppreference.com void qsort(..

언어/C&C++ 응용 2021.09.07

[백준] 1427번: 소트인사이드

https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 이해 그냥 큰 정수의 각 자리수를 벡터에 저장했다가, 정렬해서 프린트하면 된다. 작성 코드 #include #include #include using namespace std; long long int N; vector v; int main(void){ int tmpN; int cnt = 0; cin >> N; tmpN = N; for(int i = 0; tmpN>0; i++){ v.push_back(tmpN%10); tmpN = tmpN / 10; cnt++; } sort(v...

[C++] std::sort()

algorithm 헤더에 있는 sort() 함수는 quick sort를 기반으로 평균 시간복잡도 nlogn 을 보장한다. 1. 기본형: template void sort (RandomAccessIterator first, RandomAccessIterator last); 마지막에 사용자가 지정한 비교함수를 argument로 주지 않으면 기본 오름차순으로 정렬된다. vector v = {3, 4, 2, 1}; bool compare(int a, int b){ return a>b; } int main(void){ sort(v.begin(), v.end()); sort(v.begin(), v.end(), less()); sort(v.begin(), v.end(), greater(); sort(v.begin()..

언어/C&C++ 응용 2021.09.06

[기본] 입출력, ASCII 변환

1. 입력받기 input() 문자열을 입력받는다. 따라서 int형 정수를 받으려면 int() 라는 함수를 따로 사용해줘야 한다. 2. 출력 print() 3. 문자 -> ASCII 코드로 ord() 하나의 유니코드 문자를 나타내는 문자열을 받아서 정수를 반환한다. chr()의 반대 기능을 한다. 4. ASCII 코드 -> 문자 chr() 5. 정수 변환 class int(x=0) class int(x, base=10) 전달된 parameter을 정수로 변환해서 리턴한다. argument가 주어지지 않으면 0을 반환한다 만약 실수가 주어지면 소수점 아래를 잘라버린다. base라는 argument를 줄 수 있는데, 2~36진수를 표현할 수 있다. 특별히 2진수, 8진수, 10진수, 16진수에는 prefix를..

언어/Python 2021.09.06

[백준] 10809번: 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net alp 이라는 각 알파벳에 대응하는 배열을 만들어두고, 이걸 looking table처럼 사용한다. #include #include using namespace std; int alp[26] = {-1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1..