https://www.acmicpc.net/problem/12033
오름차순과 정답이 무조건 존재한다는 점, N이 최대 4라는 점 때문에 풀기 편했다.
이중포문으로 하나하나씩 확인하며 3/4배를 만족하는지 보면된다.
주의할점은 Node.js 풀이 환경인 경우 for문내에서 console.log를 하면안된다 (아마도 리눅스 환경이랑 달라서 인듯.. 이거때문에 오랜시간 날렸다.)
testcase에 해당하는 정답을 모아서 한번에 console.log를 할 수 있도록 하자.
const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n").map((e) => e.split(" ").map(Number)).filter((e) => e.length > 1);;
/* a가 b의 할인가격이면 true 리턴하는 함수*/
const isValid = (a, b) => b * 0.75 === a;
let answer = new Array();
input.forEach((testcase) => {
const visited = new Array(testcase.length).fill(0);
const temp = new Array();
testcase.forEach((a, i) => {
if (!visited[i]) {
for (let j = i + 1; j < testcase.length; j++) {
if (isValid(a, testcase[j]) && !visited[j]) {
visited[i] = 1;
visited[j] = 2;
break;
}
}
}
});
visited.forEach((e, i) => {
if (e === 1) temp.push(testcase[i]);
});
answer.push(temp);
});
answer.forEach((e, index) => console.log(`Case #${index + 1}:`, e.join(" ")));