삼성 B형 샘플 문제 : 숫자야구게임 (+ Linked List 삭제)
SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 B형 전체 링크 swexpertacademy.com/main/sst/intro.do SW Expert Academy에서 B형 샘플 문제 숫자야구게임을 풀어보자. B형에서 가끔 출제 되는, 시간보다 함수 호출 횟수를 줄여야 하는 쿼리형 문제이다.따라서 register나 ++i 같은 최적화를 신경 쓸 필요가 없다.먼저, 숫자 야구 게임에 대해서 간단히 알아보자. 정답이 1357이고, 9375라고 query를 던지면 result = { strike = 1, ball = 2 }가 된다.위치도 같고, 숫자도 같은 3 → strike 1, 위치는 다르지만, 숫자는 같은 5, 7 → ball = 2 가 된다. guess 배열에 [1, 3, 5, ..
2021. 2. 17.
BOJ 14503 : 로봇 청소기 (삼성 SW TEST A형)
SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/14503 로봇 청소기와 같은 시뮬레이션은, 시키는 대로 구현하면 된다. 좌표 4방향, 북, 동, 남, 서는 문제에서 아래와 같이 정의되어있다./* 0 1 2 3 -> 북 동 남 서 */int dr[] = { -1, 0, 1, 0 };int dc[] = { 0, 1, 0, -1 }; 방향 전환은 배열을 이용해서 간단히 할 수 있다.int change[] = { 3, 0, 1, 2 };북(0)에서 왼쪽으로 회전하면 서(3),동(1)에서 왼쪽으로 회전하면 북(0),... 으로 4방향에 대해서만 정의해주면..
2021. 2. 17.
B형 필수 정렬 : 머지 소트 Merge Sort
삼성 B형 전체 링크 B형에서는 Quick 정렬을 Reference 코드로 제공한다. 하지만, Quick은 최악의 경우 O(N2)이므로, 어떤 상황에서도 O(NlogN)인 Merge Sort를 익혀두자. Merge Sort는 반으로 나누어서, 왼쪽을 정렬하고, 오른쪽을 정렬한 후, 합치는 방법으로 정렬을 한다. 왼쪽을 정렬할 때는, 다시 반으로 나누어서, 왼쪽, 오른쪽 정렬하고 합친다. 오른쪽도 마찬가지로 ... 즉, 재귀 함수를 이용해서 정렬하게 된다. start >= end면 더 이상 정렬할 수 없으므로 종료 조건으로 사용한다. void sort(int start, int end) { int mid; if (start >= end) return; mid = (start + end) >> 1; /* 절..
2021. 2. 16.