1
이것은 poj 문제입니다. http://poj.org/problem?id=2136 저는 쉽게 이해할 수 있지만 어떻게 든 온라인 판단은 샘플 입력을 위해 저에게 효과가있는 것으로 보이지만 내 솔루션을 수락하지 않습니다. 그것은 "잘못된 해결책"이라고 말합니다. 질문에 언급 된 바와 같이 여분의 공백이나 여분의 줄이 없는지 확인했습니다. 누군가 내가 잘못 가고 있다는 것을 지적 해 주실 수 있습니까?POJ 2136 Vertical Histogram
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeMap;
public class poj2136 {
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int counter = 0;
TreeMap<Character,Integer> hm_frequency = new TreeMap<Character,Integer>();
while(counter<4)
{
String line = sc.nextLine();
String words[] = line.split(" ");
for(String word: words)
{
//System.out.println(word);
for(int i=0; i<word.length();i++)
{
char key = word.charAt(i);
if((int)key>64 && (int)key<91)
{
if(hm_frequency.containsKey(key))
{
hm_frequency.put(key,hm_frequency.get(key)+1);
}
else
{
hm_frequency.put(key,1);
}
}
}
}
counter++;
}
while(true)
{
int max_value = maxvalue(hm_frequency);
char ch = maximumchar(hm_frequency, max_value);
if(max_value == 0)
{
break;
}
Iterator iter = hm_frequency.keySet().iterator();
int stop_flag = 0;
while(iter.hasNext() && stop_flag==0)
{
char key = (Character) iter.next();
if (key== ch)
{
stop_flag = 1;
}
if(hm_frequency.get(key)== max_value)
{
hm_frequency.put(key, max_value-1);
if(stop_flag == 0)
System.out.print("* ");
else
System.out.print("*");
}
else
{
if(stop_flag == 0)
System.out.print(" ");
else
System.out.print(" ");
}
}
System.out.println();
}
Iterator iter = hm_frequency.keySet().iterator();
while(iter.hasNext())
{
char key = (Character) iter.next();
if(iter.hasNext())
System.out.print(key+" ");
else
System.out.print(key);
}
}
public static char maximumchar(TreeMap<Character,Integer> hm_frequency, int max_value)
{
Iterator iter = hm_frequency.keySet().iterator();
char ch = '.';
while(iter.hasNext())
{
char key = (Character) iter.next();
int value = hm_frequency.get(key);
if(value==max_value)
{
ch = key;
}
}
return ch;
}
public static int maxvalue(TreeMap<Character,Integer> hm_frequency)
{
Iterator iter = hm_frequency.keySet().iterator();
int max = 0;
while(iter.hasNext())
{
char key = (Character) iter.next();
int value = hm_frequency.get(key);
if(value>max)
{
max = value;
}
}
return max;
}
}
감사합니다 아웃. 저를 평생에 걸릴 것입니다. – Prateek
그래, 때로는 문제에 대한 새로운 모습이 해결사가 될 수 있습니다. –