코딩테스트 대비

소프티어 - LV1 연탄 배달의 시작

JellyApple 2024. 6. 27. 22:45

문제 링크 

https://softeer.ai/practice/7626

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

난이도 : 별 1개 

 

문제 풀이 

1) 이미 오름차순으로 받는다고 가정했으므로 minDistance를 최대한 크게 잡고 첫 번째부터 계속 distance를 빼가며 minDistance를 줄여간다. 

2) 그 후 distance가 minDistance면 count ++ 해준다.

 

문제 코드

const readline = require("readline");

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

let input = [];

rl.on("line", (line) => {
    input.push(line.trim());
    if (input.length === 2) {
        rl.close();
    }
});

rl.on("close", () => {
    const n = parseInt(input[0]);
    const positions = input[1].split(' ').map(Number);
    
    // 가장 가까운 두 마을의 거리를 구함
    let minDistance = Infinity;
    for (let i = 1; i < n; i++) {
        const distance = positions[i] - positions[i - 1];
        if (distance < minDistance) {
            minDistance = distance;
        }
    }

    // 가장 가까운 두 마을의 거리가 같은 경우의 수를 구함
    let count = 0;
    for (let i = 1; i < n; i++) {
        const distance = positions[i] - positions[i - 1];
        if (distance === minDistance) {
            count++;
        }
    }

    console.log(count);
    process.exit();
});