반응형
뭐야 이것도 한번에 풀엇다
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class Xhaneung {
static String[] numList = {"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
public static void main(String[] args) throws Exception{
StringBuilder sb = new StringBuilder();
java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
Map<String, Integer> numMap = initMap();
int T = Integer.parseInt(br.readLine());
for(int i=0;i<T;i++){
String line = br.readLine();
try {
String[] s = line.split(" ");
String C = s[4];
String result = calc(s[1], numMap.get(s[0]), numMap.get(s[2]));
sb.append(anagram(C,result)).append('\n');
}catch (Exception e){
sb.append("No").append('\n');
}
}
System.out.println(sb.toString());
}
public static Map<String, Integer> initMap (){
Map<String, Integer> numMap = new HashMap<String, Integer>();
numMap.put("zero",0);
numMap.put("one",1);
numMap.put("two",2);
numMap.put("three",3);
numMap.put("four",4);
numMap.put("five",5);
numMap.put("six",6);
numMap.put("seven",7);
numMap.put("eight",8);
numMap.put("nine",9);
numMap.put("ten", 10);
return numMap;
}
public static String calc(String operation, int num1, int num2) throws Exception{
int result;
if("*".equals(operation)){
result = num1*num2;
}else if("+".equals(operation)){
result = num1 + num2;
}else if("-".equals(operation)){
result = num1 - num2;
}else {
throw new Exception("No");
}
if(result<0 || result >10){
throw new Exception("No");
}
return numList[result];
}
public static String anagram(String str1, String str2){
if(str1.length() == str2.length()) {
char[] chr1 = str1.toCharArray();
char[] chr2 = str2.toCharArray();
Arrays.sort(chr1);
Arrays.sort(chr2);
if (Arrays.equals(chr1, chr2)) return "Yes";
else return "No";
}
return "No";
}
}
문자 -> 숫자
숫자 계산
결과값 -> 문자
치환할것이 많기에 맵과 리스트를 줬다.
키워드는 '애너그램'
굉장히 잘 설명해주셨다.
http://jaybdev.net/articles/2017-09/Algorithm-8
반응형
'Develope > 알고리즘' 카테고리의 다른 글
[백준 - 1158] 조세퍼스 문제 (0) | 2018.01.04 |
---|---|
[백준 - 2140] 지뢰찾기 (0) | 2017.12.19 |
[알고스팟] DIAMONDPATH (2) | 2017.12.11 |
[알고스팟] Quantization (0) | 2017.12.04 |
[알고스팟, 백준 9663] N-Queen (0) | 2017.12.04 |