BOJ 1059 수2

2020. 10. 7. 17:16·알고리즘/BOJ

www.acmicpc.net/problem/1059

 

1059번: 수2

첫째 줄에 Lucky Set에 포함된 숫자의 개수 L이 주어진다. 둘째 줄에는 L개의 수가 주어진다. 이 수는 1,000보다 작거나 같은 자연수이고, L은 50보다 작거나 같은 자연수이다. 그리고 중복되지 않는다

www.acmicpc.net

일단 처음 봤을 때 문제 이해가 안된다..

질문게시판을 참고해서 이해했는데 lucky set이 주어지고 n이 주어지면 lucky set의 원소에서

n을 포함하고 있는 구간을 찾으면 된다.

 

무슨 소리냐면

1 7 4 10 

n = 2 라면

 

2를 포함하는 lucky set은 1과 7이고

2~6 사이의 구간 [2, 6]에서 2를 포함하는 구간을 따로 나눠서 세면 된다.

[2, 3], [2, 4], [2, 5], [2, 6] 이 있다. [3, ~] 은 2를 포함하지 않는다.

 

 [left + 1, n] ~ [n, right - 1]의 구간이기 때문에 (n - left) * (right - n)에서 가운뎃 값 1을 빼면 된다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int ar[1001];

int main() {
	int n, l, min = 1001, max = 0;
	cin >> l;
	for (int i = 0; i < l; i++) cin >> ar[i];
	sort(ar, ar + l);

	cin >> n;

	for (auto i : ar) {
		if (i == n) {
			cout << 0 << endl;
			return 0;
		}
	}

	min = ar[lower_bound(ar, ar + l, n) - ar - 1];
	max = *upper_bound(ar, ar + l, n);
	cout << (n - min) * (max - n) - 1 << endl;

	return 0;
}

 

또한 lucky set에 n이 포함되어 있으면 구간 [a, b]가 존재하지 않기 때문에 0을 따로 출력해줘야 한다.

 

	min = ar[lower_bound(ar, ar + l, n) - ar - 1];
	max = *upper_bound(ar, ar + l, n);

 

lower_bound와 upper_bound를 활용해서 lucky set에 포함된 원소들을 쉽게 찾을 수 있었다.

 

 

'알고리즘 > BOJ' 카테고리의 다른 글

BOJ 1806 부분합  (0) 2020.10.10
BOJ 13414 수강 신청  (0) 2020.10.07
BOJ 11000 강의실 배정  (0) 2020.10.02
BOJ 2437 저울  (0) 2020.10.02
BOJ 6603 로또  (0) 2020.09.29
'알고리즘/BOJ' 카테고리의 다른 글
  • BOJ 1806 부분합
  • BOJ 13414 수강 신청
  • BOJ 11000 강의실 배정
  • BOJ 2437 저울
khyu2
khyu2
  • khyu2
    dev log
    khyu2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘
        • BOJ
        • Programmers
        • Algorithm
        • SWEA
      • 개발
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    완전 탐색
    분할 정복
    다익스트라
    냅색
    구현
    SWEA
    조합
    큐
    피보나치 수
    완전탐색
    알고리즘
    피사노 주기
    dfs
    행렬 제곱
    시뮬레이션
    유니온 파인드
    GREEDY
    트리
    BFS
    이분 탐색
    코딩테스트 연습
    우선순위 큐
    이분탐색
    dp
    MST
    크루스칼
    프로그래머스
    팰린드롬
    BOJ
    소수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
khyu2
BOJ 1059 수2
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.