출처 : https://programmers.co.kr/learn/courses/30/lessons/42840
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
효율적인 코드를 작성하는 그날까지 .....개념없고 수포자인 저는.... 연습을 계속 해보려고 합니다 ㅠㅠ
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] answer = {};
if(answers.length <= 0) return answer;
ArrayList<Integer[]> h = new ArrayList<>();
Integer[] h1 = {1, 2, 3, 4, 5};
Integer[] h2 = {2, 1, 2, 3, 2, 4, 2, 5};
Integer[] h3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
h.add(h1);
h.add(h2);
h.add(h3);
ArrayList<Integer> list = new ArrayList<>();
for(int i : answers)
list.add(i);
Stack<Ctx> rst = new Stack<>();
Ctx ctx = new Ctx();
ctx.a = 0;
ctx.b = 0;
rst.add(ctx);
int idxx = 0;
for(Integer[] i : h) {
idxx++;
int val = compare(list , i);
Ctx p = rst.pop();
if(p.b > val) rst.push(p);
else if(p.b < val) {
ctx = new Ctx();
ctx.a = idxx;
ctx.b = val;
rst.push(ctx);
}
else {
rst.push(p);
ctx = new Ctx();
ctx.a = idxx;
ctx.b = val;
rst.push(ctx);
}
}
rst.removeIf(a -> {
return a.a == 0;
});
//rst.sort((a,b) -> {
// return Integer.compare(a.b, b.b);
//});
answer = new int[rst.size()];
for(Ctx c : rst) {
System.out.println(String.format("%d %d" , c.a, c.b));
}
for(int i = 0; i < rst.size() ; i++) {
answer[i] = rst.get(i).a;
}
return answer;
}
public int compare(ArrayList<Integer> list, Integer[] h ) {
int d[] = {0};
int r[] = {0};
/*
Arrays.asList(h).subList(0, ( list.size() > h.length ? h.length : list.size()) ).forEach(x -> {
if(x == list.get(d[0])) r[0]++;
d[0]++;
});
*/
list.forEach(x -> {
if(x == Arrays.asList(h).get(d[0])) r[0]++;
d[0]++;
if(d[0] >= Arrays.asList(h).size() ) {
d[0] = 0;
}
});
return r[0];
}
public class Ctx {
public int a;
public int b;
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 현재 TimeStamp 값 얻기 예제 (0) | 2021.08.23 |
---|---|
MultipartHttpServletRequest 를 통한 업로드 된 multipart/form-data 파일 ContentType 확인 [MIME Type] (0) | 2021.08.17 |
코딩테스트 연습 -> 스택/큐 ->프린터 (0) | 2021.08.13 |
코딩테스트 연습->스택큐->기능개발 (0) | 2021.08.09 |
코딩테스트 ->연습문제->최솟값 만들기 (0) | 2021.08.08 |