Algorithm/Simulation

    [백준 18808번] 스티커 붙이기 (C/C++)

    https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 전체 알고리즘의 기본 틀은 아래와 같습니다. 스티커의 각 좌표를 구한다. 노트북에 붙여본다. 실패한다면 각 좌표를 90° 시킨다. 2번 부터 다시 진행한다. (단, 360° 회전시킨 경우, 더이상 노트북에 붙여보지 않는다.) 아래는 각 좌표를 90° 회전시키는 함수입니다. ⚠️ 주의할 점은 이후에 또 다시 각 좌표를 90° 회전시킬 수 있기 때문에 n과 m을 교환해주어야 한다는 것입니다. void ..

    [백준 14888번] 연산자 끼워넣기 (C/C++)

    https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 연산자 끼워넣기 문제는 백트래킹을 이용하였습니다. next_permutation()를 이용하여 연산자 수열의 모든 경우의 수를 뽑아내고, 각 수열에 대해 연산식을 계산하면 됩니다. 주의할 점은 next_permutation()을 호출하기 전에 대상 배열이 정렬되어 있어야 합니다. 또한 100 이하의 정수가 최대 11개 주어지며, 곱셈 연산이 ..

    [백준 13335번] 트럭 (C/C++)

    https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 트럭 문제는 큐와 덱을 이용해서 해결할 수 있습니다. 알고리즘의 기본 틀은 아래와 같습니다. 기다리는 트럭을 모두 Queue1에 넣는다. 다리 위에 있는 트럭들을 모두 앞으로 1씩 이동시킨다. 다리를 건넌 트럭은, 다리 위의 트럭을 저장하는 Queue2에서 pop() 한다. Queue1에서 가장 앞에 있는 트럭을 pop()하여 Queue2에 push..