inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-Q

백준 1911번 문제 정렬후 현재 위치를 갱신해가면서 찾을 수도 있지 않나요?

해결된 질문

47

예비군갈나이

작성한 질문수 8

0

저는 물웅덩이가 시작되는 위치를 기준으로 정렬을 한 뒤에 현재 위치를 0으로 잡고 만약 물웅덩이가 시작되는 위치가 현재 위치보다 크다면 현재 위치는 물웅덩이 위치로 한뒤 현재 위치 = 현재 위치 + 널빤지 위치, 만약 현재 위치가 물웅덩이가 시작되는 위치보다 크고 물웅덩이가 끝나는 위치보다 작은 경우 현재 위치 = 현재 위치 + 널빤지 위치.

이런식으로 현재 위치를 갱신해가면서 답을 구했는데 이 접근법은 이 문제에서만 유효한가요?

아래는 자바 코드 입니다.

package _5thweek;

import java.util.PriorityQueue;
import java.util.Scanner;

public class Baekjoon1911 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int l = sc.nextInt();

        PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> {
            if (a[0] > b[0]) {
                return 1;
            } else if (a[0] < b[0]) {
                return -1;
            }
            return 0;
        });

        for (int i = 0; i < n; i++) {
            int start = sc.nextInt();
            int finish = sc.nextInt();
            pq.add(new int[]{start, finish});
        }

        int ans = 0;
        int cur = 0;

        while (!pq.isEmpty()) {
            int[] poll = pq.poll();
            int start = poll[0];
            int end = poll[1];

            while (cur < end) {
                if (cur < start) {
                    cur = start;
                }
                ans += 1;
                cur += l;
            }
        }

        System.out.println(ans);
    }
}

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 예비군님 ㅎㅎ

자바말고 C++로 질문부탁드립니다.

 

시작되는 위치가 현재 위치보다 크다면 현재 위치는 물웅덩이 위치로 한뒤 현재 위치 = 현재 위치 + 널빤지 위치, 만약 현재 위치가 물웅덩이가 시작되는 위치보다 크고 물웅덩이가 끝나는 위치보다 작은 경우 현재 위치 = 현재 위치 + 널빤지 위치.

=> 넵 로직은 괜찮아 보입니다. ㅎㅎ 또한, 이문제와 유사한 문제라면 충분히 예비군님이 생각하신 로직으로도 처음에 접근해볼만하다고 생각합니다.

 

감사합니다.

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

30

2

2주차 개념#12 트리 순회

0

20

2

백준사이트가 종료된다고 합니다.

0

244

2

백준 서비스 종료

9

779

1

sk 하이닉스 코테 대비

0

360

2

3-G 최댓값 질문

0

50

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

82

2

3-I 코드 질문드립니다.

0

62

2

3-N 질문 있습니다.

0

66

2

학습방법

0

100

2

4-H 질문 있습니다 (코드 리뷰)

0

66

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

166

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

69

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

64

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

50

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

67

2

함수별 시간복잡도

0

72

2

3-h 질문입니다.

0

49

1

안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.

0

52

2

1-I 문제 질문 드립니다.

0

76

2

2-P 질문입니다.

0

56

1

mac에서 시작하기 관련

0

89

2

5-Q 질문

0

63

2

풀이 코드 질문

0

64

2