Algorithm/Baekjoon For.Java
15312 : 이름 궁합
Jinny zinny
2023. 3. 6. 00:01
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));
}
}
이번 문제는 이름 궁합이다.
내심 재밌는 주제라고 생각을 해서 생각없이 덤볐다.
내 해법은 각 알파벳 순서대로 획수를 넣은 배열을 만든다.
벡터의 사이즈가 2가 될때까지 합한 것을 임시 배열에 잠시 저장후 while문에서 반복해서 합하는 방법이다.
이렇게 하면 반복문이 한번 진행이 될 때마다 벡터의 길이가 하나씩 줄어들게 되고, 그 길이가 2가 될 때
백터의 첫번째와 두번째 수를 넣어서 답을 출력하면 된다.
(이때, 10이 넘어가게 된다면 10을 나눈 나머지를 넣었다
반응형