function solution(score) {
var answer = [];
var avg=[];
var copy=[];
for (var i=0;i<score.length;i++){
avg[i]=(score[i][0]+score[i][1])/2;
}
copy = avg.slice();
avg.sort(function(a,b){
return b-a;
});
for(var i=0;i<copy.length;i++){
for(var j=0;j<avg.length;j++){
if(copy[i]===avg[j]) answer[i]=avg.indexOf(avg[j])+1;
}
}
return answer;
}
function solution(n) {
var ary=[];
var num=1;
var index=1;
while(true){
if(index==101)break;
if(num%3!=0&&num!=3&&Math.floor(num/10)!=3&&num%10!=3&&Math.floor(num%100/10)!=3){
ary[index]=num;
index++;
}
num++;
}
return ary[n];
}
function solution(polynomial) {
var answer = ''; var ary=[]; var ce=0; var cn=0;
ary=polynomial.split(' ')
for(var i=0;i<ary.length;i++){
if(ary[i].includes('x')) {
if(ary[i].split('x').shift()==='') ce+=1;
else ce+=parseInt(ary[i].split('x').shift());
}
else if(ary[i].includes('+')) continue;
else cn+=parseInt(ary[i]);
}
if(cn==0&&ce!=1)answer=ce.toString()+'x';
else if(cn==0&&ce==1)answer='x';
else if(ce==0) answer= cn.toString();
else if(cn==0&&ce==0)answer="";
else if(ce!=1)answer=ce.toString()+'x + '+cn.toString();
else answer='x + '+cn.toString();
return answer;
}
매우 비효율적인 코드 완성! ㅋㅋㅋ
function solution(board) {
var answer = 0;
var ary=[];
for (var i=0;i<board.length+2;i++){
ary.push([]);
for(var j=0;j<board.length+2;j++){
ary[i][j]=0;
}
}
for(var i=1;i<board.length+1;i++){
for(var j=1;j<board.length+1;j++){
ary[i][j]=board[i-1][j-1];
}
}
for(var i=1;i<board.length+1;i++){
for(var j=1;j<board.length+1;j++){
if(ary[i][j]==1){
ary[i][j-1]=ary[i][j-1]!=1?-1:1;
ary[i][j+1]=ary[i][j+1]!=1?-1:1;
ary[i-1][j]=ary[i-1][j]!=1?-1:1;
ary[i+1][j]=ary[i+1][j]!=1?-1:1;
ary[i-1][j-1]=ary[i-1][j-1]!=1?-1:1;
ary[i-1][j+1]=ary[i-1][j+1]!=1?-1:1;
ary[i+1][j-1]=ary[i+1][j-1]!=1?-1:1;
ary[i+1][j+1]=ary[i+1][j+1]!=1?-1:1;
}
}
}
for(var i=1;i<board.length+1;i++)
for(var j=1;j<board.length+1;j++)
if(ary[i][j]==0) answer++;
return answer;
}
lines
가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다.
선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다.
// function solution(lines) {
// var answer = 0;
// lines.sort((a,b)=>a[0]+a[1]-(b[0]+b[1]));
// for (var i=0;i<2;i++){
// if((lines[i][1]>lines[i+1][0])&&(lines[i][1]>=lines[i+1][1]))
// answer+=(lines[i+1][1]-lines[i+1][0]);
// else if(lines[i][1]>lines[i+1][0])
// answer+=(lines[i][1]-lines[i+1][0]);
// }
// if((lines[0][1]>lines[2][0])&&(lines[0][1]>=lines[2][1]))
// answer-=(lines[2][1]-lines[2][0]);
// else if(lines[0][1]>lines[2][0])
// answer-=(lines[0][1]-lines[2][0]);
// return answer;
// }
//-값이면 그 값의 절대값을 더한다 즉, 밀어서 대칭이동시켜서 풀어보자
function solution(lines) {
var answer = 0;
var ary=[];
//lines.sort((a,b)=>a[0]+a[1]-(b[0]+b[1]));
var mini=Math.min(...lines.flat());
if(mini<0){ //대칭이동
mini=mini*(-1);
for(var i=0;i<3;i++){
lines[i][0]+=mini; lines[i][1]+=mini;
}
}
for(var i=0;i< Math.max(...lines.flat());i++){
ary[i]=0;
}
for(var i=0;i<3;i++){
for(var j=lines[i][0];j<lines[i][1];j++){
ary[j]+=1;
}
}
for(var i=0;i< Math.max(...lines.flat());i++){
if(ary[i]>1) {answer++;}
}
return answer;
}
이 문제는 반례를 찾지못해서 풀지 못했다. 미쳐버릴거 같지만
반례를 찾아서 꼭 풀어보도록하겠다. 인간승리가 뭔지 보여주지
==> 완성해서 수정완료