본문 바로가기

Algorithms135

set 롤러코스터 도토리 놀이공원 어린이 롤러코스터 앤개의 레일 조립 순서 여러 개의 레일 만듬 각 레일에는 두 개의 자연수 a, b가 주어짐 차량 레일을 통과하면서 속도가 증가하게 됨. 진입할 떄 속도 브이 통과한 후 에이플비가 됨 롤러코스터 출발할 떄 차량의 속도 1이며, 롤러코스터 모든 레일을 지났을 때 차량의 속도를 최소한으로 줄여야 함 레일을 버리는 것을 싫어하기 때문에, 앤개의 레일을 모두 서용하여 롤러코스터를 만들어야 함 // test 입 extern int CalcFinalSpeed(int N, int *a, int *b, int *p); #define MAX_N 200000 int Sort[MAX_N]; int Buffer[MAX_N]; int NValue; void MergeSortInternal(int.. 2018. 11. 12.
평등주의 길이 엔짜리 수열 에이. 현민 평등주의 수열의 수 하나 골라 1 감소. 연산 최대 케이번. 인접한 숫자 차이의 최대값을 최소로 하는 프로그램. 이 값이 씨라면, 수열에서 인접한 숫자의 차이는 시이하가 된다는 뜻임 #include #include #define MAX_N (int)1e5 #define MAX_K (int)1e9 //HACK inline 보다 매크로를 사용하는 것이 더 빠르다 #define MIN(a,b) (a) (b) ? (a) : (b) #define ABSDIFF(a,b) ( ( a ) > ( b ) ) ? ( ( a ) - ( b ) ) : ( ( b ) - ( a ) ) int answer, N, K; int .. 2018. 11. 12.
EJ의 노래 찾기 0915 노래 최대 10000개 입력 노이즈 있는 노래의 일부분 입력 받아 노래 아이디 찾는 문제 각 노래는 -16384 ~ 16383 정수 범위 가진 길이 최소 8 최대 200인 정수 배열로 구성됨 노래의 아이디와 노래의 데이터를 입력 받은 당므, 부분 노래 8자리 연속된 일부데이터 입력 해당하는 노래의 아이디를 반호나하는 함수를 구현함 노이즈 범위 -128 ~ 127 임 일치하는 노래 무조건 1개 존재 find_music 함수 최대 호출 횟수 10000번 구현 API 보이드 이닛 인트 넘 뮤직 보이드 센뮤직 아이디, 렝스, 데이터 인트 파인트 뮤직 인트 서브 데이터 8 리턴 뮤직 아이디 - bit - 진수 연산자 - 해쉬 쉬운 것부터 ㄱㄱ링 #define MIN_MUSIC_LEN 8 #define MAX_MU.. 2018. 11. 2.
백준 5052 전화번호 목록 전화번호 목록이 주어짐 목록이 일관성이 있는지 없는지 구함 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 함 해시 충돌 발생 적은 리소스로 많은 데이터를 효율적으로 관리함 해시함수 하드디스크, 클라우드 존재 무한 가까운 데이터 유한한 개수 해시값으로 매핑함 작은 크기의 캐시 메모리로도 프로세스를 관리할 수 있게 됨 색인에 해시값을 사용함 검색과 삽입/삭제를 빠르게 수행할 수 있음 해시는 데이터 액세시(삽입, 삭제, 탐색)시 계산복잡성을 오(1)을 지향 음수를 양수화 하지 않아서 &연산함 -16 ~ 15를 5비트로 표현하면 10000 ~ 01111로 표현하게 됨 이 숫자를 5비트에 저장하는게 아닌 32비트인 인트에 저장하게도미 그 경우 음수를 시피트하게 되면 앞자리에 1이 붙어.. 2018. 11. 1.
user hash / IoT Database 주어진 name과 같은 name을 갖는 student를 찾아 해당 Student를 hash table 에서 삭제 void dell(const char name[Max_NAME+1) name 이 키가 되도록 할 것 해당 student 를 hash table에 삽입 주어진 name 과 score 를 갖는 student 를 생성(전역변수에 저장)하고, void insert(const char name[MAX_NAME+1], const int score){} 해당 하는 Student 가 hash table에 없을 경우 nullptr 을 return 주어진 name 과 같은 네임을 같는 학생을 찾아 스투던트를 리턴 50개 3초 Global 변수, Static 변수 해당 변수 사용 금지 비휘발성 메모리 가진 IoT.. 2018. 11. 1.
1265 달란트 10개 달란트 모은 원생 10개 사탕 10개를 3묶음으로 나누어서 각 묶음의 곱의 개수로 사탕을 교환해 줌 원생마다 달란트의 개수가 다름. 원장님 서로 다른 묶음 개수를 제시함 달란트 수와 묶음의 수가 주엊리 때 받을 수 있는 사탕의 최대 개수 원생 달란트 수 앤의 범위 10 달란트 엔 100 달란트 묶음의 수는 피는 엔보다 작거나 같음 #include int TC, N, R; int main(void) { scanf("%d", &TC); // 테케 개수 for (int i = 1; i 0; --j) { result *= N / j; N -= N / j; } printf("#%d %lld\n", i, result); } return 0; } 2018. 10. 31.
1263 사람 네트워크2 풀이중 연구 단체 사람 네트워크. 영향력 분석 프로그램 그래프의 노드 수 디스트는 노드 아이로부터 노드 제이까지의 최단 거리 2018. 10. 31.
1258 행렬찾기 유엔 화학 무기 조사단 화학 물질 용기 엔^2 배열되어 있음 빈 용기 원소 0, 화학 물질 종류 1~9사이의 정수 저장 #include // 헤더 파일 typedef struct Matrix { int sizeX, sizeY; }Matrix; int g_map[101][101]; bool g_flag[101][101] = { false }; Matrix g_matrix[21]; int g_matrixIndex; bool operator< (const Matrix& _first, const Matrix& _second) { if (_first.sizeX * _first.sizeY < _second.sizeX * _second.sizeY) { return true; } else if (_first.sizeX.. 2018. 10. 31.
1256 K번째 접미어 영어 소문자 문자열 길이가 엔 일 때 접미어들은 문자열의 길이만큼 존재함 몬스터 문자열 아래 그림 왼쪽 접미어 사전적 정렬 아래 그림과 같이 정렬됨 몬스터 문자열의 접미어들 중 사전적 순서 4번쨰 오는 접미어 onster K값과 문자열 주어지면 접미어들 중 사전적 순서 K번째 접미어 찾아서 출력 #include int main() { int T; char str[1001]; int memory[1001]; int count[27]; int rank[27]; int order[1001]; int vector[1001]; int vectorIndex; scanf("%d", &T); // 테케 수 받음 for (int tc = 1; tc 1) { for (int i = 0; i < vectorIndex; i+.. 2018. 10. 31.