[Softeer] 연탄 배달의 시작 java

민지·2024년 1월 30일
0

Algorithm-Solution

목록 보기
4/12
post-thumbnail

문제링크

연탄 배달의 시작

풀이 방법

처음에 문제 제대로 안 읽고서 n개 중에 2개 고르는 문제로 보고 조합 코드를 작성했다.
나중에 최소 거리만큼의 조합 수를 뽑는 문제여서 기저 조건에 해당 조건을 추가해줬다.

통과 코드

import java.io.*;
import java.util.*;

public class Main {

    static int n, minDist, cnt;
    static int[] town;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        n = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        town = new int[n];
        minDist = Integer.MAX_VALUE;
        for(int i=0; i<n; i++) {
            town[i] = Integer.parseInt(st.nextToken());
            if(i != 0) minDist = Math.min(minDist, town[i]-town[i-1]);
        }
        comb(new int[2], 0, 0);
        System.out.println(cnt);
    }
    private static void comb(int[] pick, int idx, int p) {

        if(p == pick.length) {
            if(minDist == pick[1]-pick[0]) cnt++;
            return;
        }

        if(idx == n) {
            return;
        }

        for(int i=idx; i<n; i++) {
            pick[p] = town[i];
            comb(pick, i+1, p+1);
        }
        
    }
}

결과

profile
개발의, 개발에 의한, 개발을 위한 기록장

0개의 댓글