이번 문제는 이름 궁합이다.
내심 재밌는 주제라고 생각을 해서 생각없이 덤볐다.
내 해법은 각 알파벳 순서대로 획수를 넣은 배열을 만든다.
벡터의 사이즈가 2가 될때까지 합한 것을 임시 배열에 잠시 저장후 while문에서 반복해서 합하는 방법이다.
이렇게 하면 반복문이 한번 진행이 될 때마다 벡터의 길이가 하나씩 줄어들게 되고, 그 길이가 2가 될 때
백터의 첫번째와 두번째 수를 넣어서 답을 출력하면 된다.
(이때, 10이 넘어가게 된다면 10을 나눈 나머지를 넣었다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String A=sc.next();
String B=sc.next();
int alphabet[]= {3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1};
String Asplit[]=A.split("");
String Bsplit[]=B.split("");
int ary[]=new int[Asplit.length+Bsplit.length];
Vector<Integer> vec=new Vector<Integer>();
for(int i=0;i<Asplit.length;i++)
{
char a=Asplit[i].charAt(0);
char b=Bsplit[i].charAt(0);
vec.add(alphabet[(int)a-65]);
vec.add(alphabet[(int)b-65]);
}
while(vec.size()!=2)
{
int newary[]=new int[vec.size()-1];
for(int j=0;j<vec.size()-1;j++)
{
newary[j]=vec.get(j)+vec.get(j+1);
if(newary[j]>=10)
{
newary[j]%=10;
}
}
vec.clear();
for(int j=0;j<newary.length;j++)
{
vec.add(newary[j]);
}
}
System.out.println(vec.get(0)+""+vec.get(1));
}
}
반응형
'Algorithm > Baekjoon For.Java' 카테고리의 다른 글
1406 : 에디터 (0) | 2023.03.12 |
---|---|
1013 : Contact (0) | 2023.03.12 |
13300 : 방 배정 (0) | 2023.03.10 |
1919 : 애너그램 만들기 (0) | 2023.03.10 |
11328 : Strfry (0) | 2023.03.10 |