본문 바로가기

전공 공부 정리

(93)
15. 꼭 알아야 하는 유형 1. 링크드리스트 동적할당을 정적할당으로 구현 --메인 밖에서 선언 typedef struct _node { int x; struct _node *next = nullptr; }NODE; NODE arr[1000 * 1000 + 10];//문제에서 나올 수 있는 모든 노드의 수(배열을 할당할 주소값으로 사용) int cnt = 0; --메모리 할당 NODE *newNode = &arr[cnt++]; --메모리 해제 cnt = 0; 2. 링크드리스트를 활용하여 만든 해시테이블(설정) const int MAX = 1 x = x; //Case 1 : 무작정 맨 앞에 연결 하는 방법 newNode->next = cur->next;//맨 앞에 노드 연결 cur->next = newNode;//해시연결해주기 //C..
15. 3203 : 꿀벌의 여행 DFS문제 1) 생각할 문제 -패턴의 시작 위치를 어떻게 결정할 것인가? -패턴의 시작 위치가 결정되었다면 각 벌들은 패턴의 어느 위치로 이동시킬 것인가? -이동하는 과정에서 동시에 같은 위치로 이동하게 되면 어떻게 처리할 것인가? 2) 시작 위치의 결정 -시작 위치로 결정할 수 있는 범위 (0,0) ~ ( 100 - height, 100 - width ) -위의 범위 중 꿀벌의 위치와 전혀 겹치지 않는 곳은 최적의 결과가 나올 수 없다. -모든 위치에 대해 최대 이동 꿀벌의 이동거리가 최소인 점을 찾는다. ㄱ 패턴 범위 지정시 벌에 하나라도 겹치는 것이 유리하다. 가장 멀리 가는 벌이 총 이동 시간의 기준이 됨. 꽃과 벌이 매칭 가능한 경우의 수 = 7! (5040) 테스트케이스에 따라 부담스러울 수 ..
21. C++ Programming 1. 데이터 처리, 복합데이터형 2. 루프와 관계 표현식, 분기 구문과 논리 연산자 3. 함수의 활용, 메모리 모델과 이름 공간 4. 객체와 클래스 5. 클래스와 동적 메모리 대입 6. 클래스의 상속, 프렌드 7. 예외, 기타 사항 8. String 클래스와 표준 템플릿 라이브러리 9. 입력, 출력, 파일 10. 엔디안 11. 함수 오버로딩 규칙 12. 인라인 함수 13. 레퍼런스 14. 구조체 15. 동적할당 16. 형변환 static_cast, reinterpret_cast
7. 5052 전화번호 목록 원본 출처 : https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다. 예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자 긴급전화: 911 상근: 97 625 999 선영: 91 12 54 26 이 경우에 선영이에게 전화를 걸 수 있는 방법이 없다. 전화기를 들고 선영이 번호의 처음 세 자리를 누르는 순간 바로 긴급전화가 www.acmicpc.net 문제 풀이 : #include #include #define NUM(X) ((X)-'0') typedef struct ..
14. 1133 : Uniqueness 원본 출처 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=413&sca=50&sfl=wr_subject&stx=UNIQUENESS&sop=and JUNGOL | Uniqueness > 문제은행 제한시간: 1000 ms 메모리제한: 64 MB 해결횟수: 683 회 시도횟수: 2137 회 N개의 문자열이 주어졌을 때, 동일한 문자열이 존재하는지 판단하는 프로그램을 작성하라. 문자열이란 사이에 공백이 없는 연속된 알파벳 소문자열을 뜻한다. 문자열의 길이는 최소 1글자, 최대 20글자이다. 입력되는 문자열의 개수는 2개 이상 10,000개 이하이다. www.jungol.co.kr 문제 풀이 : #include #include #define MAX (..
6. 3653 영화 수집 원본 출처 : https://www.acmicpc.net/problem/3653 3653번: 영화 수집 문제 상근이는 영화 DVD 수집가이다. 상근이는 그의 DVD 콜렉션을 쌓아 보관한다. 보고 싶은 영화가 있을 때는, DVD의 위치를 찾은 다음 쌓아놓은 콜렉션이 무너지지 않게 조심스럽게 DVD를 뺀다. 영화를 다 본 이후에는 가장 위에 놓는다. 상근이는 DVD가 매우 많기 때문에, 영화의 위치를 찾는데 시간이 너무 오래 걸린다. 각 DVD의 위치는, 찾으려는 DVD의 위에 있는 영화의 개수만 알면 쉽게 구할 수 있다. 각 영화는 DVD 표지에 붙어있는 숫 www.acmicpc.net 문제 풀이 : #include #define MAX 200000 int tree[MAX * 3]; int pos[MAX ..
13. 1726 : 구간의 최대값1 문제 출처 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=999&sca=50&sfl=wr_hit&stx=1726&sop=and JUNGOL | 구간의 최대값1 > 문제은행 제한시간: 1000 ms 메모리제한: 128 MB 해결횟수: 1300 회 시도횟수: 3132 회 입력의 첫번째 줄에는 수열을 이루는 원소의 갯수 N(1≤N≤50,000)과 구간의 갯수 Q(1≤Q≤200,000)가 공백을 사이에 두고 입력된다. 그 다음 N개의 줄에는 순서대로 서있는 원소의 숫자가 한줄에 하나씩 입력되는데, 이는 1이상 1,000,000이하이다. 그 다음 Q개의 구간의 시작 인덱스와 끝 인덱스 A, B가 공백을 사이에 두고 www.jungol.co.kr 문제 ..
5. 10755 컴퓨터실 원본 출처 : https://www.acmicpc.net/problem/10755 10755번: 컴퓨터실 문제 CSHS(Computer Science High School)의 실습실에는 총 M대의 컴퓨터가 일렬로 놓여있다. 이 컴퓨터는 왼쪽에 있는 것부터 순서대로 1~M의 번호가 매겨져 있다. 현재, 이 실습실에는 총 N명의 학생들이 이미 앉아있으며, 각각 A1, A2, ..., AN번 컴퓨터 앞에 앉아있다. 곧 있으면 자습시간이 시작되기 때문에 총 M-N명의 학생이 더 와서 컴퓨터를 사용할 것이다. 각 학생들은 다른 학생이 자기 컴퓨터의 모니터를 보는 것을 www.acmicpc.net 문제 풀이 : // 힙 자료구조 활용 - 컴퓨터 #include #define MAX 300000 int M, N, Q..