반응형
반응형
https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 난이도: solved.ac 골드 4 구현 방법 board라는 2차원 배열에 지도에 적힌 번호를 저장했다. 그리고 dice라는 배열에 주사위의 각 면에 적힌 번호를 저장했다. dice[0]는 밑면에 적힌 번호, dice[1]는 윗면에 적힌 번호 dice[2]는 왼쪽면에 적힌 번호, dice[3]는 오른쪽면에 적힌 번호 dice[4]는..
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 난이도: solved.ac 골드 4 알고리즘 분류 구현, 그래프 탐색, 너비 우선 탐색(BFS), 시물레이션 아이디어 DFS 또는 BFS로 풀 수 있는 문제다. 나는 아래의 과정을 통해 구현했다. 한 곳을 기준으로 BFS를 돌린다. 방문한 곳에서는 아래의 과정을 수행한다. - visited = 1로 만든다. - 인구의 수를 sum에 더한다. - 연합된 나라의 수를 센다. - 연합된 ..
https://www.acmicpc.net/problem/1132 1132번: 합 N개의 수가 주어진다. 이 숫자는 모두 자연수이고, 알파벳 A부터 J가 자리수를 대신해서 쓰여 있다. 이 알파벳은 모두 한 자리를 의미한다. 그리고, 각 자리수는 정확하게 알파벳 하나이다. 0으로 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 그리디 알고리즘 접근 방법 이 문제에서 주의해야 할 점은 맨 앞자리에 위치한 알파벳은 0으로 둘 수 없다는 것이다. 일단 이 부분을 고려하지 않고 각 알파벳에 숫자를 배정하는 방법은 각 알파벳이 몇의 자리수(1, 10, 100, ...)에 위치했는지를 배열에 저장해주고 그 값이 가장 큰 알파벳 차례대로 9, 8, 7, ... 을 배정하는 것이다. 예를 ..
https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 난이도: solved.ac 실버 2 알고리즘 분류 구현 접근 방법 키가 가장 큰 N부터 1까지 자리를 배정해 주면 된다. 이때 자기의 왼쪽에 자신보다 키 큰 사람이 n명 있다고 하면, 현재 줄에서 맨 왼쪽 자리로부터 n만큼 떨어진 곳에 자리를 배정한다. 배치하려는 자리에 이미 사람이 있다면 해당 자리부터 그 오른쪽 사람들은 오른쪽으로 한 칸씩 밀고 배치한다. 이는 c++ vector의 in..
https://www.acmicpc.net/problem/18290 18290번: NM과 K (1) 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접 www.acmicpc.net 난이도: solved.ac 실버 1 알고리즘 분류 브루트포스 알고리즘, 백트래킹 구현 방법 이전에 풀었던 백준 14502번 연구소 문제 (https://jangkunstory.tistory.com/135)에서 구현했던 걸 구현하는 문제다. N*M개에서 K개 고르기. 연구소 문제에서는 next_permutation 함수를 이용해 nC3을 구현했지만 이번에는 다른 방식으로 풀었다. (그래도..
https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 난이도: solved.ac 골드 5 알고리즘 분류 구현, 그리디 알고리즘, 문자열 접근 방법 S에서 T로 만들려고 하지 말고, T를 S로 만들려고 하면 매우 간단해진다. 문자열을 바꿀 때는 아래의 두 가지 연산만 가능한데, 여기에 포인트가 있다. - 문자열의 뒤에 A를 붙인다. - 문자열을 뒤집고 뒤에 B를 붙인다. 결국에는 맨 뒤의 문자가 A인지 B인지만 보..