개발자 톡

연습문제 톡 나무 심기

어떤 문제로 인해서 코드가 성공하고 실패하는지 반례를 찾지 못하겠습니다.

등록일
2024-10-30 16:09:44
조회수
56
작성자
kimty131

성공한 코드

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});


let inputs = [];


rl.on('line', (line) => {
    inputs.push(line.trim());
}).on('close', () => {
    const [n,Fs] = inputs;
    const FList = Fs.split(' ').map(Number);
    let answer = -Infinity;


    FList.forEach((el,idx,origin)=>{
        origin.slice(idx+1).forEach(el2=>{
            answer = Math.max(answer,el*el2);
        })
    })


    console.log(answer);
    process.exit(0);
});


실패한 코드

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});


let inputs = [];


rl.on('line', (line) => {
    inputs.push(line.trim());
}).on('close', () => {
    const [n,Fs] = inputs;
    const FList = Fs.split(' ').map(Number);
    let answer = -Infinity;


    FList.forEach((el,idx,origin)=>{
        origin.slice(idx+1).forEach(el2=>{
            // 에러가 발생한다고 예상되는 부분
            if(answer < el * el2) answer = el*el2;
        })
    })


    console.log(answer);
    process.exit(0);
});


어떤 이유 때문에 실패하는지 모르겠습니다. 차이점은 대소 비교하는 부분에서 answer에 값을 할당하는 부분 말고는 차이가 없다고 생각하는데 말입니다.

#나무_심기
#대소_비교
#에러
#원인_파악_불가

이 카테고리의 톡 더보기