본문 바로가기
반응형

분류 전체보기1067

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.
Visual Studio 실행 시간 확인 방법 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) 참고- chrono를 이용하여 Visual Studio 실행 시간 microseconds로 확인하기 time.h를 이용하면 자신의 코드 제출 시간을 알 수 있다.하지만 삼성 SW 시험에서는 컴파일러 옵션이 다르기 때문에 Visual Studio의 실행 시간을 그대로 믿어서는 안된다. #include #include int main(){ int TESTCASE = 1000; int TIME = 0; /* Timer on */ clock_t start = clock(); /* 실행 코드 */ for (int tc = 1; tc  위의 코드가 1초 정도 소요됨을 알 수 있다. 2021. 2. 15.
BOJ 14502 : 연구소 (삼성 SW TEST A형) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/14502  MAP을 입력받을 때, (0, 0)이 아닌 (1, 1)을 기준으로 잡는다.(0, 0) ~ (N+1, N+1)을 모두 1로 만들고 (1, 1)부터 입력을 받으면, 경계 조건을 신경쓰지 않고, 벽인지 아닌지만 체크하면 된다.void input(){ scanf("%d %d", &N, &M); for (int r = 0; r  이제 MAP을 입력받았으니, 벽을 3개 만들자.벽을 만들 때, 3중 for문을 이용할 수도 있지만, DFS 연습으로, 3단계를 걸쳐 벽을 만들어 보자.void DFS(in.. 2021. 2. 15.
BOJ 14501 : 퇴사 (삼성 SW TEST A형) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/14501  모든 경우를 다 해봐야 최대 이익을 알 수 있다.하지만 특정 일에 상담을 한다면, 해당 일 + T[i]일 부터 상담이 가능하다는 조건을 지켜야 한다. 모든 경우는 아래와 같다.1일에 상담 -> 4일, 5일, 6일, 7일 상담 가능.2일에 상담 -> 7일 상담 가능....7일에 상담 -> 불가능. 따라서 DFS를 총 N번 실행한다. (N번째 일을 최초로 시작하는 상담)/* N일부터 상담 시작, 첫 보수는 0원 부터. */for (int i = 1; i  input은 날짜가 1일부터 시작하므.. 2021. 2. 15.
BOJ 14501, 15486 : 퇴사, 퇴사 2 알고리즘 문제 전체 링크 www.acmicpc.net/problem/14501 www.acmicpc.net/problem/15486 퇴사 1의 경우는 완전 탐색으로 풀 수 있지만, 퇴사 2는 N이 매우 크므로, 다이나믹 프로그래밍, 메모이제이션(memoization)으로 풀어야 한다. DP[i] = i일 전까지의 최대 이익 이라고 정의를 하자. i일에 일을 수행하지 않으면, DP[i + 1] = DP[i]와 기존 memoization의 값 중 큰 값이 된다. i일에 일을 수행한다면, i일 전까지의 최대 이익인 DP[i]와 i일에 받을 보수 P[i]를 더한 값 vs 기존 memoization의 값 중 큰 값. 즉, DP[i + T[i]] = DP[i] + P[i] 와 DP[i + T[i]] 중 큰 값을 선.. 2021. 2. 15.
BOJ 14500 : 테트로미노 (삼성 SW TEST A형) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/14500  블럭은 5종류지만, 회전이나 대칭을 시켜도 되므로 총 19종류가 된다.  이 블럭을 실제로 4x4 배열로 만들면 아래의 모양이 된다./* 19개 블럭을 4x4 배열로 선언 */int BLOCK[19][4][4] ={ { { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }, { { 1, 0, 0, 0 }, { 1, 0, 0, 0 }, { 1, 0, 0, 0 }, { 1, 0, 0, 0 } }, { { .. 2021. 2. 15.
B형에 필요한 최적화 코드 (1) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 B형 전체 링크 참고- B형에 필요한 최적화 코드 (1)- B형에 필요한 최적화 코드 (2)- 함수의 매개변수와 배열의 register 속도 비교- 삼성 B형 디버깅 Tip- 비주얼 스튜디오 output.txt 설정하기- 삼성 SW 역량 시험 환경에서의 인라인 함수- Visual Studio LNK1168: 쓰기용으로 열 수 없습니다 해결방법 1) ++i (전위 증가) vs i++ (후위 증가) 비교.2) register 변수를 사용하자.3) 전역 변수(global) 접근을 최소화 하자.1) ++i (전위 증가) vs i++ (후위 증가) 비교. 전위 증가는 값을 먼저 증가 시키고 return한다.후위 증가는 원래 값을 먼저 받고 .. 2021. 2. 15.
삼성 SW 역량 테스트 B형 Reference 코드 A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 B형 전체 링크 swexpertacademy.com/main/main.do 상단의 LEARN -> Visual Reference Code에 참조 코드가 있다. Data Structure, Algorithm에 대한 reference code가 실제 시험에도 제공된다.(문제 왼쪽 상단에 Reference 탭 제공)필요한 코드를 정리해보면. Data Structure1) Stack    - 배열로 간단히 만들 수 있다. 참조 코드처럼 만들면 느리다. (스택 예시 참고) 2) Queue     - 배열로 간단히 만들 수 있다. 참조 코드처럼 만들면 느리다. (큐 예시 참고) 3) Priority Queue    - B형 필수, 못 외우겠다.. 2021. 2. 15.
반응형