처음에 문제를 잘못 읽어서 바이러스가 바이러스 점을 기준으로 8방향으로 모두 퍼질 수 있다고 생각했고 이차원 배열을 call by value로 넘기려고 해서 큰 문제가 발생했었다..!먼저 한 빈 공간을 기준으로 인접한 빈 공간부터 차례대로 3개씩 벽을 쌓아나가서 바이러
\[처음에는 문제를 보고 모든 테트로미노의 모양을 구해야 하는 아이디어밖에 떠오르지 않았다. 그래서 다른 사람들의 풀이를 많이 참고했다. (실제로 어떤 사람은 모든 경우의 수를 구한 사람도 보았다)먼저 테트로미노를 보면 ㅜ 이 모양 이외에는 깊이가 4인 모양임을 알 수
삼성 코딩테스트 기출 문제라고 한다 숫자들이 주어지고 그 사이에 적절하게 연산자를 끼워넣어서 최댓값과 최솟값을 구해야 한다. 주어진 연산자를 모두 다 썼을 때의 sum을 maxSum, minSum 과 비교해서 최댓값, 최솟값을 구해준다. > e.g. num={1,2
참고
\[처음에 문제를 보고 쉬운 문제라고 생각했고 톱니바퀴의 상태를 저장하는 벡터를 만들고 옆에 있는 톱니와 맞닿는 톱니의 index를 따로 저장해서 톱니가 움직일 때마다 이 index만 계속 변경해주면 된다고 생각했다.그런데 그럴 필요 없이 deque를 이용하면 훨씬 편
\[참고1 참고2Solution 1움직일 수 있는 모든 경우의 수를 selectDir\[] 배열에 넣고 크기가 5가 되었을 때 각 순서대로 이동해서 최댓값을 찾아본다. 크기가 5가 되는 모든 쌍을 dfs를 통해 구한다. 변수 지정 (상하좌우의 방향은 차례대로 0,1,2
참고1
\[참고1 참고2삼성 SW 기출 문제를 풀 때 유의할 점은 문제에 나와있는 조건을 하나라도 놓치면 안 된다. 각 조건을 정리해보면물고기1\. 물고기는 번호와 방향을 가지고있다2\. 번호가 작은 물고기부터 이동을 한다3\. 상어가 있는 칸이나 범위 밖으로는 이동할 수 없
#16236 아기상어 **아기상어 **1. 처음의 크기는 2이고 상,하,좌,우로 1초에 한 칸씩 이동한다 자신보다 크기가 큰 물고기가 있는 칸은 지나갈 수 없다 자기보다 크기가 작은 물고기만 먹을 수 있다 크기가 같은 물고기는 먹을 순 없지만 지나갈 수는 있다 먹을
\[이전에 거의 비슷한 문제\[문제를 풀 때 미처 생각지 못한 조심해야하는 부분들이 있어서 문제를 해결하는데 상당히 오랜 시간이 걸렸다.1\. Initialize먼저 연구소의 모든 칸에 빈칸과 바이러스를 입력하며 빈칸의 갯수(emptySize)와 바이러스가 있는 좌표들
#13460 구슬탈출 참고
#3190 뱀 참고
#14499 주사위 굴리기 참고 먼저 이런 형태의 정육각형을 생각해주고 각 변에 index를 지정한다. (제일 윗 면은 0, 아랫면은 5인 형태)
\[참고1 참고2문제를 보자마자 이건 dp로 풀어야겠다.. 는 알겠는데 그 이후 풀지를 못한다.. dp문제를 많이 풀었는데 아직도 잘 못하냐.. 그냥 열심히 더 풀어보는 수밖에 ㅠㅠN일 동안 매일 상담에 필요한 시간과 수익이 하나씩 주어진다예를 들어 1일에 잡혀있는 상
\[참고로봇 청소기가 바라보는 방향은 북(0), 동(1), 남(2), 서(3) 중 하나이다현재 위치를 청소하고 현재 위치에서 현재 방향을 기준으로 왼쪽 부터 탐색한다왼쪽에 청소하지 않은 공간이 있으면 그 방향으로 회전하고 이동하고 위부터 반복한다왼쪽 방향에 청소할 공간
경사로를 놓을 수 있는 곳인가 체크할 때, 가로, 세로 경사로를 둘 다 체크해야 한다. 처음에는 (y,x)좌표만변경해서 체크하는 함수를 2개 만들었는데, 굳이 그렇게 하지 않고 map에 값을 입력 받을 때 값을 가로부터 저장하는 것, 세로부터 저장하는 것 이렇게 두 개
#15683 감시 참고1
#15684 사다리 조작 참고
#15685 드래곤 커브 참고
#15686 치킨배달 참고
#16234 인구이동 💬 문제정리 국경선을 공유하는 두 나라의 인구 차이가 L이상, R이하라면 하루동안 국경선을 연다 국경선이 열린 나라들을 연합이라고 하며 각 칸의 인구수는 (연합의 인구수)/(연합을 이루고 있는 칸의 개수) 가 된다 연합을 해체하고 모든 국경선을
\[💬아이디어예로 {3,1,1}에는 3이 1번, 1이 2번 등장한다.정렬 기준은 수의 등장 횟수가 커지는 순으로, 그게 여러개라면 수가 커지는 순으로 정렬한다.이 말은 수의 등장 횟수를 오름차순으로 정렬한다는 뜻이고 나타내면 {3,1,1,2}와 같다숫자와 이 숫자가
낚시왕은 처음 (0,0)위치에 있다가 오른쪽으로 한 칸 이동한다낚시왕이 있는 열에서 가장 가까운 상어를 잡아 먹는다상어는 자신이 가지고 있는 방향으로 속도만큼 이동한다상어가 이동중 벽에 부딪칠경우 방향을 반대로 바꿔서 이동한다상어가 모두 이동을 마친 후 한 칸에 두 마
새로운 게임2를 풀면 새로운 게임1은 바로 풀 수 있으니 2 풀이만 한다\[map상에는 각 색깔이 저장되어 있고, 각 칸에는 여러 개의 체스가 저장되기 때문에 map에 색을 저장하는 벡터와, 각map에 여러 개의 체스를 저장할 벡터를 만들어야 한다각각의 체스는 위치 (
\[struct SHARK 정의상어는 위치와 방향, 그리고 각 방향으로 향하고 있을 때마다 우선 순위 방향을 가지고 있다같은 칸에 여러 상어가 있을 경우 가장 낮은 번호의 상어만 남기고 죽기 때문에 상어가 살아 있는지 아닌지 판단하는 변수 필요struct MAP_INF
\[문제 제목만큼이나 까다로운 문제였다. 특히 좌표를 다루는 게..함수는 크게 T 모양에 따라 blue, green 칸으로 이동하는 함수 moveBlock(t,y,x), Blue칸에 있는 블록이 합쳐지는 mergeBlue(), Green칸에 있는 블록이 합쳐지는 mer
\[문제는 크게 파이어스톰을 크기가 2^L\*2^L인 부분으로 나누어 시계 방향으로 90도로 회전하는 부분, 얼음의 양을 줄이는 부분, 가장 큰 덩어리를 찾는 부분으로 나눈다참고로 비트 연산자 >>은 2의 거듭제곱으로 나누기, <<은 2의 거듭제곱을 곱할 때
#21609 상어 중학교 배열 회전 참고
#21608 상어 초등학교 compare 구현/
\[물고기는 자신의 위치와 방향을 가지고 있고, 상어에게 잡아먹히면 죽는다. 따라서 위치(y,x), 방향(d), 생존여부(alive)의 정보를 담은 구조체를 만든다맵의 한 칸에는 물고기의 번호 (여러 개 가능), 냄새가 저장된다. 따라서 물고기 번호 vector<
원판을 한 칸씩 돌릴 때마다 원판의 마지막 값이 가장 앞으로 오고, 앞의 값이 마지막 값으로 간다는 점에서 deque 자료 구조를 이용한다이웃한 원판의 수를 지울 때 bfs, 너비 우선 탐색을 이용하는데 이때 같은 원판 내에서 처음 끝과 마지막 값이 이웃한다는 점을 주
\[(문제를 푸는데 벽을 설정하는 아이디어가 떠오르지 않아 모든 코드를 참고했다){동,서,남,북}의 방향을 {0,1,2,3} 으로 설정한다입력 받아야 하는 값에는 온풍기의 좌표와 방향, 벽의 좌표와 벽이 세워진 방향, 온도를 조사해야하는 좌표가 있다온도를 조사해야하는
\[SWEA 보물 상자의 뚜껑을 시계방향으로 돌릴 때마다 비밀번호 쌍이 바뀌므로 deque 자료구조를 사용했다 (삽입과 삭제가 빈번하게 일어나지 않으므로 vector를 사용해도 된다)비밀번호 쌍은 중복을 허용하지 않으므로 set자료구조를 사용했다. 이때 내림차순으로 저
\[최소 비용으로 모든 다리를 연결한다는 점에서 kruskal algorithm 을 떠올린다 각 섬에 번호를 매기고 vec 이라는 이름의 vector를 만들어 {dist, 섬1, 섬2} 를 저장한다. 이는 섬1과 섬2간 거리는 dist라는 뜻이다vec에 저장된 값을 참
참고
\[SWEA 이 문제는 예전에 c++로 풀었던 문젠데 java로 다시 풀려고 하니까 문법이 생각이 안 나서 애를 먹었다.. 그래서 이 문제에 필요한 java 문법 간단하게 (깊게 다루지는 않을 것임) 정리하면서 다시 풀어보자!숫자를 입력 받을 때 Scanner를 사용해
SWEA #1238 Solution 비상 연락망이 주어질 때 가장 나중에 연락을 받게 되는 사람 중 번호가 가장 큰 사람을 고르는 문제다. 이때 연락은 인접한 모든 곳에 동시에 주어진다. 그림과 같이 가운데 1이라고 적힌 부분에서 연락이 시작된다고 하면 오른쪽 각
\[문제가 단순해 보이는데 이해하는데 꽤 오랜 시간이 걸렸다..문제는 프로그램이 주어졌을 때, 이 프로그램이 끝나는지 아니면 무한루프에 빠지게 되는지 구하는 것이고, 무한루프에 빠졌을 때는 어느 부분이 무한루프인지를 출력하는 문제다프로그램이 최대로 수행될 수 있는 횟수
\[SWEA 배양 용기의 크기는 무한하다고 가정하였기 때문에 map을 따로 두지 않고 그냥 좌표로만 관리하였더니 시간 초과가 났다 → 초기 줄기 세포 영역의 넓이가 NxM 이고, 배양 시간은 최대 K이기 때문에 map의 크기를 N+2\*K 로 두고 좌표를 다시 관리했다