본문 바로가기

알고리즘/삼성 SW 역량 테스트 기출 문제6

[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 13458번 시험 감독 굉장히 쉬운 문제였다. 총감독관은 무조건 1명이 들어가야되고 나머지를 부감독관으로 채워야 한다. 응시자 수를 받아서 총감독관 수를 빼주고 나머지는 부감독관의 수로 나눠서 반올림 한 것을 더해주면 답이 된다. 5 10 9 10 9 10 7 20 을 예시로 들면 총감독관이 7명 감독이 가능하기 때문에 10-7 9-7 10-7 9-7 10-7 3 2 3 2 3 이 되고 부감독이 20명 감독이 가능하기 때문에 3/20 2/20 3/20 2/20 3/20 반올림하면 1 1 1 1 1이 되므로 총 감독관 5명 + 부감독관 5명 해서 10명이 된다. 여기서 주의해야 될 것은 응시자수가 1,000,000가 될 수 있는데 시험장 수가 1,000,000이 되면 int형 -21억~21억의 범위를 넘어가게 된다. 그래서 정답.. 2021. 5. 17.
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 3190번 뱀 www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 이번 문제는 큐를 활용하여 가는 곳의 위치를 저장하고 사과가 없으면 큐의 맨 앞을 제거하고 뱀의 머리 좌표를 큐에 넣고, 사과가 있으면 그냥 뱀의 머리 좌표만 큐에 넣어가면서 큐를 업데이트해주는 문제였다. 이 것을 구현하기 위해 map을 -1로 초기화해주고 사과가 있는 위치를 APPLE이라고 표시를 해주고 방향이 바뀌는 시간과 방향을 배열에 저장해 준다. 무조건 처음에는 오른쪽이므로 오른쪽을 기준으로 char가 오면 .. 2021. 5. 13.
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 12100번 2048 (Easy) www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 굉장히 복잡한 문제처럼 보이지만 N이 20이 max이고 5번 이동만 하면 되기 때문에 완전탐색 기법을 사용하여 다 해보면 된다. map을 매번 저장해주고 [왼쪽,오른쪽,위,아래] 로 블록을 밀어주고 그 블록을 그대로 또 한번 [왼쪽,오른쪽,위,아래] 방향으로 밀어주면서 이렇게 5번을 해주고 5번이 됐을 때 블록의 최대 값을 return해주면 모든 case를 다 돌려 볼 수 있다. 1.. 2021. 5. 11.
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 13460번 구슬 탈출2 정답 코드 #include #include #include using namespace std; #define MAX_MAP 11 char map[MAX_MAP][MAX_MAP]; int dx[4] = { -1, 1, 0, 0 }; int dy[4] = { 0, 0, -1, 1 }; int N, M; pair Red; pair Blue; pair Hole; struct MapInfo { pair RedPos; pair BluePos; int count; }; int Solve() { bool visited[MAX_MAP][MAX_MAP][MAX_MAP][MAX_MAP] = { false, }; //red와 blue의 각각 위치 queue q; MapInfo m; m.BluePos = Blue; m.Red.. 2021. 5. 11.
300x250