문제링크처음에는 while문을 이용하여 전부 빼는 방식을 사용했는데 O(N^2)으로 시간초과가 났다. 그래서 수학적으로 좀 더 생각해보면 C만큼 나눠주었을때 몫만큼 더해주면 되고 만약 나머지가 존재한다면 +1 까지 해주면 끝이난다.참고로 A,B,C전부 백만까지 가능하므
문제링크백준의 삼성 기출 복원 문제집 문제이다.구현력이 좀 약하다 생각하여 연습겸 풀어보았다.꼬리부분을 빼는것을 고민하다가 Deque를 생각하였다.뱀과같은 문제일때 유용한 stl인거 같아 기억해놔야 할것같다.\~~ 삼성의 구현문제는 항상 방향이 들어가는것같다...dx\
문제링크문제에 주어진 5가지 그림을 회전 및 대칭을 하면 총 19가지 모양이 나온다. 이를 모두 block배열에 넣고 전체 브루스포스로 찍어봐서 최댓값을 출력한다.map배열에 오른쪽과 밑으로 3칸씩 (-무한)값을 넣어준다. 할당배열을 넘었을시 최댓값이 인정되지않도록 하
문제링크N과 M 시리즈 문제로 백트래킹 복습을 한번 한 이후라 쉽게 풀수있었다.연산자를 각각 math배열에 넣어둔후 dfs와sum을이용하여 값을 구했다.
문제링크N이 15 이하로 작기 때문에 전체 가지수를 전부 탐색하였다.1\. 마지막 return시 조건 제대로 설계하기2\. 가지치기 할때, 끝에날짜 조심하기(퇴사기준)
문제 링크dfs방식의 구현 코드이다.삼성구현 문제에서 방향에 관한 문제가 많이나오는데 이문제를 통해 제대로 이해하자코드 내에서 예를 들면 int ndir = (dir + 3 - i) % 4; // +3은 270도 회전 => 결국 왼쪽으로 90도 이동 , 또한 (-i)
톱니바퀴 문제링크vector<deque< int>> 를 이용하여 gear입력을 받았다.deque를 쓴 이유는 회전하는 각각의 톱니를 1차원 큐로 생각하여 회전시 각각의 앞과 뒤에 추가하거나 빼는과정을 하기위해서이다. 즉, 3시방향은 2번index 9시방향은
문제링크연구소 1,2 문제와는 다르게 3은 비활성 바이러스가 활성바이러스로 변하게된다. 이를위해 활성바이러스로 변할시 큐에 다시 넣어주는 작업을 하였다.그외에는 같은 방식으로 완전탐색으로 M만큼 바이러스를 정하고 BFS를 사용하여 카운트 하였다.완전탐색의 경우 백업ma
문제링크CCTV의 종류를 입력받은후 각각의 가지수를 전부 카운트 해보는 문제이다. 문제에 들어가기전 완전탐색이 맞는지 시간초과가 안날지 최악의case를 먼저 계산해보는 습관을 가지자4^8 \* 64 이므로 대략 400만정도이므로 1초 안에 가능하다.그다음에는 각 CCT
문제링크BFS 와 우선순위 큐를 이용한 삼성기출문제이다.우선순위큐를 사용한 이유는 먹을수 있는 물고기가 여러마리 존재할 때 어떤 것을 먼저 먹을지 고르기 위해서이다.기출을 풀면서도 우선순위 큐와 같은 자료구조도 같이 떠올리자 !
문제링크사다리를 전부 한개씩 놓아보며 최소값을 찾는 완전탐색 문제이다.물론 3개로 안될때 -1로 출력하라는 조건이없다면 시간초과가 발생할것이다.하지만 그외에도 탐색시 조합과같이 구현하지 않는다면 이또한 시간초과가 발생한다.사실이문제는 이중포문에서 y,x,now와 같이
문제 링크여러개를 그려보면서 커브에대한 규칙을 찾고, 문제 설명에 맞게 구현하는 문제이다.시험때 만난다면 당황할것같은 ...문제였다.3~4세대 까지 그리다보면 세대가 증가할 수록 방향 역순으로 +1씩추가됨을 알수있다.curve.push_back((tempk + 1) %