본문 바로가기
Algorithm/Baekjoon For.Java

15312 : 이름 궁합

by Jinny zinny 2023. 3. 11.

이번 문제는 이름 궁합이다.

내심 재밌는 주제라고 생각을 해서 생각없이 덤볐다.

내 해법은 각 알파벳 순서대로 획수를 넣은 배열을 만든다.

벡터의 사이즈가 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