문제 5×5 크기의 숫자판이 있다. 각각의 칸에는 숫자(digit, 0부터 9까지)가 적혀 있다. 이 숫자판의 임의의 위치에서 시작해서, 인접해 있는 네 방향으로 다섯 번 이동하면서, 각 칸에 적혀있는 숫자를 차례로 붙이면 6자리의 수가 된다. 이동을 할 때에는 한 번 거쳤던 칸을 다시 거쳐도 되며, 0으로 시작하는 000123과 같은 수로 만들 수 있다. 숫자판이 주어졌을 때, 만들 수 있는 서로 다른 여섯 자리의 수들의 개수를 구하는 프로그램을 작성하시오. 입력 및 출력 입력: 다섯 개의 줄에 다섯 개의 정수로 숫자판이 주어진다. 출력: 첫째 줄에 만들 수 있는 수들의 개수를 출력한다. 풀이 숫자판을 모든 점에서 인접해 있는 네 방향으로 다섯 번 이동하면서 여섯자리 숫자를 얻어낸다. 숫자판을 이동하기..
문제 생태학에서 나무의 분포도를 측정하는 것은 중요하다. 그러므로 당신은 미국 전역의 나무들이 주어졌을 때, 각 종이 전체에서 몇 %를 차지하는지 구하는 프로그램을 만들어야 한다. 입력 및 출력 입력: 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어진다. 출력: 주어진 각 종의 이름을 사전순으로 출력하고, 그 종이 차지하는 비율을 백분율로 소수점 4째자리까지 반올림해 함께 출력한다. 풀이 예제 입력으로 다음과 같이 여러 줄로 나무 종류가 나열되어 있다. 이 종류들을 전체에서 비율로 나타내기 위해서는 같은 종끼리 묶을 필요가 있다. 같은 종 별로 ..