본문 바로가기
728x90
반응형

전체 글77

[algorithm] 백준 - 사다리 조작 삼성 SW 기출 문제이다. brute force와 구현문제이다. 간단히 설명하자면, 사다리 타기 게임인데, 각 세로줄이 게임을 완료한 후에도 동일한 위치에서 끝나야한다. 참고로 사다리의 가로줄은 맞닿을 수 없다. 사다리 원번호 num, 현재 번호 pnum, 직전에 탄 사다리 좌표 a,b에 대한 자료형을 만들었다. struct width{ int a,b; }; struct ladder{ width w; int number,pnumber; }; 사다리 타기 전, a는 0으로, b는 num, pnum은 num으로 초기화한다. 사다리 이동 방식 1. pnum과 b가 동일하거나, pnum - 1이 b와 동일할 경우, 그리고 직전에 탐색했던 가로 좌표가 아닐 경우, 직전에 탐색했던 a보다는 크지만 그 중에서 가장 .. 2020. 12. 25.
[algorithm] 백준 - 감시 삼성 SW 기출 문제이며, 꽤나 긴 코드를 요구하는 문제이다. dfs로 구현했다. CCTV 종류는 총 5가지로, 다음과 같이 회전할 수 있다. 따라서 방향을 미리 설정해뒀다. pair direction[] = {{-1,0}, {1,0}, {0, -1}, {0, 1}}; pair secondDirection[] = {{{-1,0}, {1,0}},{{0,-1},{0,1}}}; pair thirdDirection[] = {{{-1,0},{0,-1}},{{1,0},{0,1}}, {{1,0},{0,-1}}, {{-1,0},{0,1}}}; tuple fourthDirection[] = {{{-1,0},{0,-1},{1,0}},{{0,-1},{-1,0},{0,1}},{{1,0},{-1,0},{0,1}},{{0,1},.. 2020. 12. 24.
[algorithm] 백준 - 톱니바퀴 이 문제는 삼성 sw 기출 문제이다. 시뮬레이션 문제이다. 중첩 if문이 깊기 때문에 헷갈릴 수 있다는 것을 조심해야한다. 서로 맞닿은 톱니는 index로 표현하면 아래처럼 맞닿아있다. A톱니바퀴가 회전할 때 서로 맞닿은 톱니의 극이 다르다면 A가 회전한 방향과 반대 방향으로 회전한다. 맞닿은 부분의 극이 같다면 회전하지 않는다. N극은 0, S극은 1, 1은 시계방향, -1은 반시계방향이다. 1. 반시계방향 회전 뒤 index값을 앞 index에 대치한다. 그리고 맨 앞 index 값은 기록해두다가 맨 뒤 Index와 대치한다. if(rotation == -1){ char firstNum = saw[sawNum][0]; for(int i = 0; i < 7; i++){ saw[sawNum][i] = s.. 2020. 12. 24.
[algorithm] 백준 - 연구소 이 문제는 삼성 SW 기출문제이고, brute force와 bfs를 사용하여 풀었다. 연구소에 3개의 벽을 세워 모든 경우의 수를 따진 후(brute force), bfs로 바이러스를 추적한 뒤, 빈칸의 개수를 구하여 이 문제를 해결할 수 있었다. void combination(int depth){ if(depth == 3){ bfs(); initVisited(); int count = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(area[i][j] == 0){ count++; } if(area[i][j] == 3){ area[i][j] = 0; } } } maxNum = max(maxNum, count); return; } for (in.. 2020. 12. 24.
728x90
반응형