목록백준/시뮬레이션,구현 (22)
Study hard

www.acmicpc.net/problem/16974 16974번: 레벨 햄버거 상근날드에서 오랜만에 새로운 햄버거를 출시했다. 바로 레벨-L 버거이다. 레벨-L 버거는 다음과 같이 만든다. 레벨-0 버거는 패티만으로 이루어져 있다. 레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, www.acmicpc.net [풀이] 먼저 burger[51]과 patty[51]에 전체 재료의 수와 패티의 수를 저장하였다. 그리고 X의 범위에 따라 return값을 달리 해 주었다. N이 0이고 X가 1이면 버거에는 패티 1장만 있으므로 1을 반환한다. N이 1이 아니고 X가 1이면 마지막 재료는 햄버거번이므로 0을 반환한다. 그리고 X의 크기가 아래 표시된 영역의 재료 수보다 작거나 같을 때 몇 장의 패티를 벅는지 반환..

www.acmicpc.net/problem/16939 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net [풀이] 큐브를 아래 그림과 같이 두고 풀었다. 위와 같이 두고 입력을 받으면 뒷면->윗면->앞면->왼면->오른면->아랫면 순서로 입력을 받게 된다. 각 면을 시계방향으로 돌리는 경우와 반시계방향으로 돌리는 경우를 모두 확인하도록 해야한다. ※각면을 윗면로 두었을 때 사방에 어떤 면의 몇번째 칸이 붙게 되는지 그려보면서 풀어서 그나마 덜 헷갈리고 풀 수 있었다.. 처음엔 각 면마다 2*2배열을 선언해주었는데 복사..

www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net [풀이] 구현해야할 것 1. 원판 2. 원판 돌리기 3. 인접하면서 같은 수 찾기 4. 원판에 적힌 수의 평균 찾고 평균보다 큰 수에서 1 빼고 작은수에 1 더하기 1. 원판은 2차원 배열 int Circle[][]로 구현하였다. Circle[i][j]는 i번 원판의 j번째 숫자를 의미한다. 2. 돌릴 원판의 번호와 방향과 돌릴 칸 수를 인수로 보내 시계방향 또는 반시계방향으로 해당 원판을 돌리..

www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net [풀이] 문제에 주어진 규칙으로 연산을 진행하는 문제였다. - C연산을 R연산과 같은 방식으로 해주기 위해 배열의 행과 열을 반전시키는 setAcopy함수와 resetAcopy함수를 구현했다. - number_cnt[]에 행에 같은 숫자가 몇 번 나오는지 저장하고, 1번 이상 나온 숫자는 벡터에 나온 횟수와 함께 저장한다. - 나온 횟수를 기준으로 벡터를 정렬하고 배열 A에 정렬된 순서대로 값과 나..

www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net [풀이] 문제에 나온 규칙대로 구현하는 문제였다. 처음에 모든 상어를 각각의 s만큼 움직이게 해서 위치를 갱신해주었는데, 시간초과가 났다. 최악의 경우 10^3(상어 속력)*10^4(상어의 수)*10^2(C의 크기) = 10^9번의 연산을 하게 되므로 시간초과가 나게 된다! 상어가 위 아래로 움직일 땐 (R-1)*2, 좌우로 움직일 땐 (C-1)*2번 움직이면 같은 자리에 같은 방향을 가지고..

www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net [풀이] 문제에서 주어진 규칙대로 구현하는 문제였다. 구현 순서 1. 봄 -나무가 자기 나이만큼 양분 먹고 나이+1 -양분 부족하면 즉시 죽음 2. 여름 -죽은 나무 → 양분 (죽은 나무의 나이/2) 3. 가을 -나무 나이가 5배수면 8개 방향으로 번식 4. 겨울 -각 칸에 A[r][c]만큼 양분 추가 배열 Map[11][11] 사용하여 각 칸에 남은 양분 양을 저장하였다. deque자료구조를 ..