[선형 자료구조] 배열 - 일곱 난장이 ✅ (문풀)

김수연·2022년 9월 18일
0
post-thumbnail

//일곱 난장이
function answer(dwarf) {
    let result = [];
  
  	let sum= 0;
  	for ( let i = 0; i < dwarf.length; i++){
    	sum += dwarf[i];
    }
  
    sum -= 100;
  
  	let faker = [];
 	for( let i = 0; i < dwarf.length; i++){
      for(let j = i+1; j < dwarf.length; j++){
      	if(dwarf[i]+dwarf[j] == sum) {
       		faker[0] = i
         	faker[1] = j
          	break;	
        }
      }
      if(faker.length != 0) break;
    }
  
  	let count = 0;
  	for(let i = 0; i < dwarf.length; i++){
    	if(i == faker[0] || i == faker[1]) continue;
      
      result[count++] = dwarf[i];
    }
  
    return result;
  }
  
  /* main code */
  let input = [
    // TC: 1
    [1, 5, 6, 7, 10, 12, 19, 29, 33],
  
    // TC: 2
    [25, 23, 11, 2, 18, 3, 28, 6, 37],
  
    // TC: 3
    [3, 37, 5, 36, 6, 22, 19, 2, 28],
  ];
  
  for (let i = 0; i < input.length; i++) {
    process.stdout.write(`#${i + 1} `);
    console.log(answer(input[i]));
  }
  
break

이중 for문에서 조건에 맞는 값을 모두 찾았을 때 쓸데없는 루프를 멈추고
내부 for문의 breaks는 해당 반복문만 종료하므로 바깥 for문도 faker의 길이로 break한다.

profile
길을 찾고 싶은 코린이 of 코린이

0개의 댓글