ez_code   1년 전

문제

아그네스는 내년부터 축제에 새로운 게임이 생긴다는 얘기를 들었습니다. 진행자는 단어 하나를 골라 종이에 적은 후, 참가자에게는 단어의 길이만 말해줍니다. (이 단어를 단어 1이라 합시다.) 참가자가 (단어 2라고 할 수 있는) 같은 길이의 단어 하나를 말하면, 참가자는 두 단어가 얼마나 다른지 차이에 따라 (즉, 두 단어를 서로 교환하기 위해 얼마나 많은 단계가 필요한지 여부에 따라) 동전을 얻거나 잃습니다. 이제 막 6살이 된 아그네스는 이제 막 글자 읽는 법을 배웠고 수학은 하지도 못하므로 게임을 하기 위해 당신의 도움을 필요로 합니다.

축제에서 동전을 얻거나 잃는 규칙은 아래와 같습니다.

- 게임에서는 a-z 문자만 사용됩니다.

- 단어 간의 차이는 각 위치에서 차이를 기반으로 결정됩니다.

- 각 위치에 대해: (1) 두 단어에서 그 위치의 문자가 동일할 경우, 동전을 얻지도 잃지도 않습니다; (2) 그 위치에서 단어 1의 문자가 단어 2의 문자보다 알파벳 순서로 앞에 올 경우, 참가자는 두 문자 사이의 각 문자에 대해 동전 1개를 지불하고 추가로 1개의 동전을 지불해야 합니다; (3) 그 위치에서 단어 1의 문자가 단어 2의 문자보다 알파벳 순서로 뒤에 올 경우, 참가자는 두 문자 사이의 각 문자에 대해 동전 1개를 얻고 추가로 1개의 동전을 얻습니다.

예를 들어봅시다: 진행자가 단어 agnes를 적고 당신이 단어를 heard로 추측했을 때, 아래의 표와 같은 계산이 이루어집니다. 

(표 참조)

- (길이에 따라) "aal", "abut" 등과 같은 단어를 말하면 항상 쉽게 돈을 벌 수 있으므로 이 게임이 특별히 흥미롭게 느껴지지 않을 수 있습니다. 하지만 반전이 하나 있습니다: 참가자가 너무 많은 동전을 얻으면, 참가자는 아무 것도 가져갈 수 없습니다. (축제 게임이 다 그렇죠.) 하지만 이 반전은 문제에서는 무시하겠습니다.

당신은 단어 쌍이 주어질 때 아그네스가 얼마나 동전을 얻을지 혹은 잃을지 알려주는 프로그램을 작성해야 합니다. 프로그램은 연속으로 주어지는 단어 쌍을 읽고 지불하거나 받아야 하는 동전의 수를 알려줍니다. 

다음 내용은 자바에만 적용됩니다.

주어지는 프로그램의 뼈대는 단어를 입력 받는 과정과 메시지를 출력하는 과정을 처리합니다. 당신은 정수 값을 반환하는 costToSwap 메소드를 구현해야 합니다.

입력

첫 줄에 테스트 케이스의 수가 주어집니다. 이후 각 줄에 두 단어가 공백을 두고 주어집니다.

출력

각 테스트 케이스에 대해, 얻거나 잃은 동전의 수를 출력합니다.

댓글을 작성하려면 로그인해야 합니다.