CodeGround 2

[99번] 유사도

nn개의 숫자들로 이루어진 두 개의 수열 a=a1 a2⋯ana=a1 a2⋯an와 b=b1 b2⋯bnb=b1 b2⋯bn가 있다. 두 수열 aa와 bb의 유사도란 두 수열에서 같은 위치의 숫자가 일치하는 개수이다. 예를 들어, a=5 2 3 7 6 1a=5 2 3 7 6 1와 b=5 7 1 2 6 3b=5 7 1 2 6 3가 주어지면, 제일 첫 번째 숫자 5와 뒤에서 두 번째 숫자 6이 일치하므로 aa와 bb의 유사도는 2이다. 우리는 두 번째 수열 bb에 대해서만 임의의 구간 [i,j][i,j]를 선택해서 이 구간에 속한 수들을 회전시킨다. 여기서, 회전이라는 것은 이 구간에 속한 수 bi bi+1⋯bj−1 bjbi bi+1⋯bj−1 bj를 bj bj−1⋯bi+1 bibj bj−1⋯bi+1 bi와 같이 앞..

CodeGround 2020.08.13

[98번] 소수 수열

문제 수학과 프로그래밍을 좋아하는 AA와 BB 두 사람이 다음과 같은 게임을 하고 있다. 둘은 각각 1 이상 30,000 미만의 수 하나를 고른다. 이 수를 가지고 점수를 계산하여 큰 쪽이 이기는 게임이다. 어떤 수의 점수는, 이 수부터 시작해서 한 자리를 골라 이 자리의 숫자를 지워서 소수를 만들고, 이 과정을 연속해서 최대로 많이 만들 수 있는 소수의 개수이다. 이 과정에는 입력받은 원래의 수도 포함된다. 예를 들어, 127은 자신이 소수이다. 만약 7을 지우면 12가 되고, 이는 소수가 아니다. 그러나, 7을 지우는 대신 2를 지워서 17, 다시 1을 지워서 7을 만들면 총 3개의 소수를 연속해서 만들 수 있으며, 127의 점수는 3, 즉 127에서 규칙을 지키면서 소수를 최대로 많이 만들 수 있는..

CodeGround 2020.08.13