[Coding test] 0405_no.2 (java)
2020-04-05
Coding test / 0405_no.2
문제설명
유출 x
풀이
package T0405;
//30min
public class t2 {
public int solution(String answer_sheet, String[] sheets) {
int answer = 0;
char as[] = new char[answer_sheet.length()];
int max = 0;
for(int i=0; i<answer_sheet.length(); i++)
as[i] = answer_sheet.charAt(i);
for(int i=0; i<sheets.length; i++) {
for(int j=i+1; j<sheets.length; j++) {
int serise = 0;
int s = 0;
int plus = 0;
for(int k=0; k<answer_sheet.length(); k++) {//여기서 비교
if(sheets[i].charAt(k) == sheets[j].charAt(k)) {
if(sheets[i].charAt(k) != as[k]) {
plus++;
serise++;
if(s==0 && k == answer_sheet.length()-1)
s = 1;
}
}
else {
s = Math.max(s, serise);
serise = 0;
}
}
max = Math.max(max, plus + (s*s));
}
}
answer = max;
return answer;
}
public static void main(String[] args) {
}
}
후기 (30min)
음.. 사실 답이 온전히 맞는 건지는 모르겠지만,
comparator 를 이용해 연속된 값(seirse)과 그냥 조건에 맞는 오답(plus)을 찾아내서 max값을 구했다