본문 바로가기

알고리즘 문제풀이174

[삼성역량테스트PRO] Binary Search 역량테스트 Pro 에만 나오는 개념이라서 여기에 포스팅한건 아니다 물론 자료구조시간에, A형 공부를 하면서도 배운 내용이지만 정리하지 않아서 해본다. 정의 정렬되어 있는 배열에서 탐색 범위를 절반으로 줄여가며 찾는 탐색 방법 시간복잡도는 O(logN) 이다. 활용 STL을 사용할 경우 algorithm 헤더의 binary_search, lower_bound, upper_bound를 사용할 수 있다. 이들은 오름차순 정렬되어있는 배열, vector에서만 정상작동한다. 아래 문제에서 활용해보자. 문제 백준 1920번 문제를 직접 구현을 통해 / STL을 사용한 두 가지 방법으로 풀어본다. 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1],.. 2022. 4. 15.
[삼성역량테스트PRO] Linked List 연결리스트 라고도 한다. 전공자라면 대학교 1,2학년때쯤 자료구조 과목에서 배우는 과목이지만, 코딩테스트에서 상황에 맞춰 바로 써먹기는 어려울 수 있다. 특히 역량테스트에서는 Adv보다 Pro 등급에서 필수적으로 알아야 하는 개념이다. 구조 List는 노드들의 모임이다. 이 노드들은 기본적으로 값(Data field) 과 다음노드의 주소(Link field)를 가지고 있어서 연결된 값의 모임을 만들 수 있다. 다음노드의 주소는 아는데 첫 노드의 주소는 어떻게 알까? -> HEAD 종류 1. 단방향 연결리스트 _ Singly Linked List 단순히 한쪽 방향으로만 연결되어 있는 연결리스트이다. 2. 양방향(이중) 연결리스트 _ Doubly Linked List 양쪽 방향으로 연결된 양방향 연결리스트이.. 2022. 4. 14.
[삼성역량테스트PRO] 시험 (멀티캠퍼스 나들이) 시험이라 쓰고 멀티캠퍼스 봄나들이라고 읽는다. 토요일 아침시험이라 일찍이 선릉 멀티캠퍼스로 향했다. 물론 A형 복습도 다 못한채로.. 코로나때문인지 쉴수있는 공간이 다 막혀있다 시험후기 : 문제자체는 A형보다 간결했다. 문제 유출은 못하니 아래에 몇가지 키워드만 적어보려 한다. Graph -> Spanning Tree Linked List 적절한 컨테이너 선택 SCC 그런데 아직 내 실력으로는 아무리 생각해보고 계산을 해봐도 메모리오버,시간초과가 났다 코드를 작성하기 시작한 건 시험 시작 두시간 후! 결국 해결방법을 생각해내지 못하고 알고있는대로 구현을 하니 역시나 메모리가 터져나갔다 그것도 한 군데가 아닌 몇 군데에서 터졌다. 구현이 매끄럽지않은 점도 있어서 이게되나? 식 코딩을해서.. 부족함을 느꼈다.. 2022. 3. 20.
[삼성역량테스트PRO] Pro시험 팁 시험에앞서 공부를 별로 못했다 그래서 몇년전 붙은 선배에게 팁을 몇가지 물어봤다 글에 앞서 이 팁은 정말 급할때만 보길 권하며 코딩실력에는 1도 도움이 되지않는 오로지 시험만 보는 팁이다.. 1. 더 빠른속도 위해 merge sort 구현해야됨? C++의 경우 algorithm 헤더의 sort()함수는 quick sort의 단점을 보완한 intro sort 방법으로 구현되어 있다. quick sort 는 일반적으로 O(nlogn) 이지만 최악의 경우에 O(n^2) 의 시간 복잡도를 가진다. 하지만 intro sort 는 어떤 상황에서도 O(nlogn)의 시간 복잡도를 가진다. -> 급하면 일단 sort() 쓰자 [개념정리] STL라이브러리 - sort()2 풀이 일시 : 2020-08-02 ​ 개념 : .. 2022. 3. 18.
[삼성역량테스트PRO] 삼성코테란?+Pro준비 코딩테스트 pro를 공부하기에 앞서 공부하기가 너무 귀찮아 준비 포스팅을 끄적여본다. 주경야독 꾸준히하는사람들 존경스럽다.. 삼성코테는 엄밀히말하면 삼성그룹 SW역량테스트 이며, 삼성그룹의 SW인력을 채용하기위해, 임직원들의 능력을 향상,입증 하기 위해 존재한다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 한번 공식 홈페이지를 둘러보자. 위 사이트에 들어가보면 아래와 같은 내용이 있다. 상시 SW역량테스트를 풀어볼 수 있는데 여기서 상시테스트란 뭘까 상시 평가는 누구나 볼 수 있는데 (내부기준)으로는 A형(Advanced) B형(Professional) C형(Expert)에 해당한다. " Intermedi.. 2022. 3. 12.
[개념정리] 배열의 초기화 - fill 서론 : 보통 배열을 초기화 하고자 할때는 보통 아래와 같은 방법을 사용한다. 선언과 동시에 초기화 memset으로 초기화 값을 직접 넣어주어 초기화 아래는 사용 예시이다. 1. 선언과 동시에 0으로 초기화 int map[10][10] = {0,}; 2. memset 으로 초기화 memset(arr, Flase, sizeof(arr)); 3. 선언과 동시에 값을 직접 넣어주어 초기화 int map[2][2] = { {1,2}, {3,4} }; 하지만 예를들어 5로 초기화하고 싶다하면 어떤 방법을 써야될까? 우선 선언하면서 값을 모두 넣어줄 수 있을 것이다. int map[2][2] = { {5,5}, {5,5} }; 하지만 2x2 배열이 아니고 100x100 배열이라면 이렇게 모두 넣어주기는 힘들것이다... 2021. 4. 24.
[개념정리] c++ 메모리 영역 복사 (memcpy, copy) 코딩을 하다보면 배열 또는 벡터를 복사할 일이 생긴다. 이 때 for loop를 통해 하나하나 복사를 해줄 수도 있고, memcpy를 쓸수도, copy를 쓸 수도 있을 것이다. 각각에 대해 알아보자. 1. memcpy 메모리를 조작하는 함수로는 대표적으로 memset, memcpy, memmove, memcmp 등이 있다. 그 중 memcpy는 메모리를 다른영역으로 복사하는 함수이다. 헤더파일: C : C++ : 기본 사용 : void* memcpy (void* dest, const void* source, size_t num) dest : 복사받을 곳을 가리키는 포인터 source : 복사할 메모리를 가리키는 포인터 num : 복사할 데이터의 길이 (바이트 단위) - 배열 복사 #include int .. 2021. 4. 24.
[삼성역량테스트] 16235 나무 재테크 풀이일시 : 2021-04-24 문제 : 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다. 상도는 전자통신공학과 출신답게 땅의 양분을 조사하는 로봇 S2D2를 만들었다. S2D2는 1×1 크기의 칸에 들어있는 양분을 조사해 상도에게 전송하고, 모든 칸에 대해서 조사를 한다. 가장 처음에 양분은 모든 칸에 5만큼 들어있다. 매일 매일 넓은 땅을 보면서 뿌듯한 하루를 보내고 있던 어느 날 이런 생각이 들었다. 나무 재테크를 하자! 나무 재테크란 작은 묘목을 구매.. 2021. 4. 24.
반응형