본문 바로가기
반응형

삼성 SW 역량247

해시 테이블 성능 비교 및 소수 찾기 (BOJ 1620) 삼성 B형 전체 링크 참고 - 해시 테이블 Hash Table - 해시 테이블 추가, 삭제, 수정, 검색 - 해시 응용 - 2차원 배열 탐색 - 해시 응용 - Rush Hour Puzzle (2차원 배열 탐색 응용) - 해시 테이블 성능 비교 BOJ 1620의 MAX_TABLE을 바꿔가면서 성능을 비교해보자. BOJ 1620의 N = 100,000이다. 순서대로 MAX_TABLE = 100 (작은 값이고 소수가 아님) MAX_TABLE = 107 (작은 값이고 소수) MAX_TABLE = 100,000 (N과 비슷한 값이지만 소수가 아님) MAX_TABLE = 100,003 (N과 비슷한 값이지만 소수) MAX_TABLE = 200,000 (N의 2배, 소수가 아님) MAX_TABLE = 200,009 .. 2021. 2. 16.
BOJ 1620 : 나는야 포켓몬 마스터 이다솜 (Hash Table) 삼성 B형 전체 링크 www.acmicpc.net/problem/1620 참고 - 해시 테이블 Hash Table - 해시 테이블 추가, 삭제, 수정, 검색 - 해시 응용 - 2차원 배열 탐색 - 해시 응용 - Rush Hour Puzzle (2차원 배열 탐색 응용) - 해시 테이블 성능 비교 BOJ 1620은 실제 삼성 B형에서도 자주 나오는 문자열 해싱과 비슷해서 Hash Table 연습 문제로 풀이를 만들어 보았다. 실제 B형에서 제공하는 hashing 함수를 이용해서 문제를 풀어보자. unsigned long hash(const char *str) { unsigned long hash = 5381; int c; while (c = *str++) { hash = (((hash 숫자 */ POKETM.. 2021. 2. 16.
BOJ 2606 : 바이러스 (Linked List Tail ver) 삼성 B형 전체 링크 삼성 C형 전체 링크 www.acmicpc.net/problem/2606 참고 - 메모리 풀 Memory Pool - 메모리 풀 vs malloc 속도 비교 - 링크드 리스트 Linked List - 링크드 리스트 Linked List Tail ver - 더블 링크드 리스트 Double Linked List - 더블 링크드 리스트 Double Linked List Tail ver Linked List는 HEAD만으로도 충분하지만, 가~~~끔 들어온 순서를 고려해야하는 경우가 있다. 이 때는 TAIL을 써서 끝 node의 주소를 기억해두면 된다. Make 함수를 보자. void Make(int p, int c) { NODE *nd = &POOL[pcnt++]; nd->node = c;.. 2021. 2. 16.
삼성 B형 디버깅 Tip SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 B형 전체 링크 참고- B형에 필요한 최적화 코드 (1)- B형에 필요한 최적화 코드 (2)- 함수의 매개변수와 배열의 register 속도 비교- 삼성 B형 디버깅 Tip- 비주얼 스튜디오 output.txt 설정하기- 삼성 SW 역량 시험 환경에서의 인라인 함수- Visual Studio LNK1168: 쓰기용으로 열 수 없습니다 해결방법 1) tc N번까지 통과하는데, N+1번 부터 실패하는 경우. tc N번까지 지우고 N+1번부터 통과하는지 확인해본다.N+1번 부터 통과한다면 거의 100% 초기화를 제대로 안해준 경우다.사용하는 배열이나 index를 모두 init에서 제대로 초기화 하는지 확인해보자.2) 비주얼 스튜디오 디버거를.. 2021. 2. 16.
메모리 풀 vs malloc 속도 비교 삼성 B형 전체 링크 삼성 C형 전체 링크 참고 - 메모리 풀 Memory Pool - 메모리 풀 vs malloc 속도 비교 - 링크드 리스트 Linked List - 링크드 리스트 Linked List Tail ver - 더블 링크드 리스트 Double Linked List - 더블 링크드 리스트 Double Linked List Tail ver 먼저 BOJ 1707 이분 그래프 문제(Linked List 만들기)에서 Make 함수를 malloc으로 바꿔보자. #include #include int K, V, E; typedef struct st { int node; struct st *next; }NODE; NODE HEAD[20200]; //NODE POOL[202000 * 2]; 메모리풀 관련 .. 2021. 2. 15.
BOJ 1707 : 이분 그래프 삼성 B형 전체 링크 www.acmicpc.net/problem/1707 그래프를 만들고 DFS나 BFS 탐색을 하면 된다. tc가 K개 있으므로, 초기화를 잘 해줘야 한다. 문제 풀이 방법은 node를 탐색하면서 색칠을 하면 된다. 색칠을 하다가, 이미 색칠이 된 곳을 검사해서 색깔이 다르면 "NO"가 된다. 3 - 2(빨강) = 1(검정) / 3 - 1(검정) = 2(빨강)이 되므로 if (!DFS(p->node, 3 - color)) return 0; 와 같은 방식으로 색칠하면 된다. 1 -1 을 하는 방법도 가능하다. DFS 풀이는 아래와 같다. #include int K, V, E; typedef struct st { int node; struct st *next; }NODE; NODE HEAD.. 2021. 2. 15.
메모리 풀 (Memory Pool) 삼성 B형 전체 링크 삼성 C형 전체 링크 참고 - 메모리 풀 Memory Pool - 메모리 풀 vs malloc 속도 비교 - 링크드 리스트 Linked List - 링크드 리스트 Linked List Tail ver - 더블 링크드 리스트 Double Linked List - 더블 링크드 리스트 Double Linked List Tail ver 삼성 B형에서는 c++ library 사용이 불가능하지만, 유일하게 malloc은 사용이 가능하다. swexpertacademy.com/main/sst/intro.do 하지만 이건 100% 함정이다. (100% 쓸모가 없다.) 아직도 가끔 외부 강사들이 malloc, free, new, delete를 멋지게(?) 사용하는 방법을 알려주는 것 같지만... 애초.. 2021. 2. 15.
BOJ 2606 : 바이러스 (Linked List) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 B형 전체 링크삼성 C형 전체 링크 www.acmicpc.net/problem/2606 참고- 메모리 풀 Memory Pool- 메모리 풀 vs malloc 속도 비교- 링크드 리스트 Linked List- 링크드 리스트 Linked List Tail ver- 더블 링크드 리스트 Double Linked List - 더블 링크드 리스트 Double Linked List Tail ver 삼성 SW A형 입문으로 대부분 풀어보게 되는 바이러스 문제를 Linked List로 풀어보자.N이 작기 때문에 보통 100 x 100 2차원 배열을 선언해서 그래프를 만들지만,B형 연습을 위해 Linked List를 만들어 보자. Linked List는.. 2021. 2. 15.
B형에 필요한 최적화 코드 (2) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 B형 전체 링크 참고- B형에 필요한 최적화 코드 (1)- B형에 필요한 최적화 코드 (2)- 함수의 매개변수와 배열의 register 속도 비교- 삼성 B형 디버깅 Tip- 비주얼 스튜디오 output.txt 설정하기- 삼성 SW 역량 시험 환경에서의 인라인 함수- Visual Studio LNK1168: 쓰기용으로 열 수 없습니다 해결방법 B형에 필요한 최적화 코드 (1)은 필수 최적화이고 기억하기 쉽다.++i 사용하기, register로 선언하기, 전역 변수는 복사해서 사용하기로 외울 필요도 없고,마지막 점검 때, 코드만 조금 다듬으면 된다. (2)에서는 많이 사용하지는 않지만, 간단한 것을 모아보았다. 4) if/else vs .. 2021. 2. 15.
반응형