[BOJ/Gold 5] 백준 24230 트리 색칠하기(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/24230 24230번: 트리 색칠하기 정점이 $N$개인 트리가 있다. 정점에는 1부터 $N$까지 번호가 붙어있다. 트리의 루트는 항상 1번 정점이며 맨 처음에는 모든 정점이 하얀색으로 칠해져 있는 상태이다. 하나의 정점에 색칠하면 해 www.acmicpc.net 문제 정점이 N개인 트리가 있다. 정점에는 1부터 N까지 번호가 붙어있다. 트리의 루트는 항상 1번 정점이며 맨 처음에는 모든 정점이 하얀색으로 칠해져 있는 상태이다. 하나의 정점에 색칠하면 해당 정점 아래 있는 모든 정점이 같은 색으로 칠해진다. 색은 섞이지 않고 색칠할 때마다 그 색으로 덮어진다. 단, 하얀색으로 색칠할 수는 없다. 아래 그림처럼 정점 10개로 구성된 트리가..
[BOJ/Gold 3] 백준 23295 스터디 시간 정하기 1(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/23295 23295번: 스터디 시간 정하기 1 첫째 줄에는 스터디에 참가하고자하는 참가자 수 N과 스터디 시간 T가 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ T ≤ 100,000) 다음 줄부터 참가하고자 하는 참가자들의 시간 정보가 N개 주어진다. 각 정보의 www.acmicpc.net 문제 의찬이는 여러 참가자들을 모아 알고리즘 대회 준비 스터디를 진행하고자 한다. 스터디에 많은 참가자들이 모였지만, 각자 가능한 시간들이 달라 의찬이는 스터디 시간을 정하는데 어려움을 겪고 있다. 의찬이는 바쁘면서도 한가하기 때문에 최대한 다른 참가자들의 시간에 맞춰서 스터디를 진행하고자 한다. T시간 동안 스터디를 진행하고자 할 때 참가자들..
[BOJ/Gold 4] 백준 25826 2차원 배열 다중 업데이트 단일 합(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/25826 25826번: 2차원 배열 다중 업데이트 단일 합 크기가 n x n인 정수형 2차원 배열 A가 주어진다. 배열 A의 원소는 A[0][0], A[0][1], …, A[n - 1][n - 1]이다. 배열 A의 모든 원소의 초깃값은 입력으로 주어진다. 배열 A에 대한 m개의 질의가 저장된 배열 B www.acmicpc.net 문제 크기가 n x n인 정수형 2차원 배열 A가 주어진다. 배열 A의 원소는 A[0][0], A[0][1], …, A[n - 1][n - 1]이다. 배열 A의 모든 원소의 초깃값은 입력으로 주어진다. 배열 A에 대한 m개의 질의가 저장된 배열 B가 주어진다. 배열 B에 저장된 m개의 질의는 아래 두 가지 유형..
[BOJ/Gold 5] 백준 28018 시간이 겹칠까?(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/28018 28018번: 시간이 겹칠까? 댓글을 달아준 학생 수 $N$이 주어진다. $(1\leq N\leq 100\,000)$ 다음 $N$개 줄에는 각 학생의 좌석 배정 시각 $S$와 종료 시각 $E$가 주어진다. $(1\leq S\leq E\leq 1\,000\,000)$ 다음 줄에는 특정한 시각의 개수 www.acmicpc.net 문제 얼마 전 부산대학교 커뮤니티에 어느 시간대에 도서관의 열람실 좌석이 널널한지에 관한 질문 글이 올라왔다. 작성자는 지난주 일요일에 언제 도서관의 열람실을 이용했는지 댓글을 달아달라고 부탁하였다. 이에 많은 학생이 본인이 있던 시간을 댓글로 달아주었다. 자랑스러운 부산대학교 학생들은 공부하는 시간에는 ..
[BOJ/Gold 5] 백준 16987 계란으로 계란치기(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 문제 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱걸이를 5회 하는 기적의 운동 루틴을 통해 뇌와 근육을 동시에 단련한다. 근육을 단련할 때 식단이 정말로 중요하다는 것을 아는 인범이는 탄수화물이 많은 밥이나 빵 따위의 아..
[BOJ/Gold 4] 백준 1464 뒤집기 3(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/1464 1464번: 뒤집기 3 세준이는 어떤 문자열 S를 뒤집으려고 한다. 문자열을 뒤집는 방법은 문자열의 길이를 N이라고 하자. i만큼을 뒤집는다는 소리는 그 문자열의 처음부터 정확하게 i개의 문자를 역순으로 뒤집는 www.acmicpc.net 문제 세준이는 어떤 문자열 S를 뒤집으려고 한다. 문자열을 뒤집는 방법은 문자열의 길이를 N이라고 하자. i만큼을 뒤집는다는 소리는 그 문자열의 처음부터 정확하게 i개의 문자를 역순으로 뒤집는 것이다. 세준이는 1부터 N까지 수를 차례대로 생각한다. 그리고, 뒤집을지 안 뒤집을지 선택할 수 있다. 예를 들어, S="BCDAF" 이고, 세준이가 길이 1만큼을 뒤집지 않고, 길이 2만큼도 뒤집지 ..
[BOJ/Gold 5] 백준 23300 웹 브라우저 2(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/23300 23300번: 웹 브라우저 2 첫째 줄에 접속할 수 있는 웹페이지의 종류의 수 N, 사용자가 수행하는 작업의 개수 Q 가 각각 주어진다.(1 ≤ N, Q ≤ 2,000) 둘째 줄부터는 Q개의 작업이 주어지며, 각 작업이 의미하는 바는 다음 www.acmicpc.net 문제 우리는 웹 페이지에 접속할 때 '웹 브라우저'를 사용한다. 웹 브라우저에는 크게 뒤로 가기(Backward), 앞으로 가기(Frontward), 웹페이지 접속(Access) 기능이 있다. 사용자가 웹 사이트에 접속하면 컴퓨터의 캐시(cache)공간에 웹페이지 정보가 저장된다. 그리고 뒤로 가기 또는 앞으로 가기 기능을 사용하면 캐시 공간에 저장되어 있던 페이..
[BOJ/Gold 3] 백준 2065 나룻배(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/2065 2065번: 나룻배 강을 사이에 두고 위치한 두 정박장 사이를 한 대의 나룻배가 오가고 있다. 두 정박장은 강을 기준으로 왼쪽(left), 오른쪽(right)으로 구분한다. 제일 처음에는 나룻배가 왼쪽 정박장에 위치해 있 www.acmicpc.net 문제 강을 사이에 두고 위치한 두 정박장 사이를 한 대의 나룻배가 오가고 있다. 두 정박장은 강을 기준으로 왼쪽(left), 오른쪽(right)으로 구분한다. 제일 처음에는 나룻배가 왼쪽 정박장에 위치해 있다. 이 나룻배는 한번에 최대 M명의 사람을 태울 수 있으며, 한 쪽 정박장에서 다른 쪽 정박장으로 이동하는데 양쪽 방향 모두 t만큼의 시간이 걸린다. 나룻배는 손님을 한 쪽 정박..
[BOJ/Bronze 2] 백준 27982 큐브 더미(C++)
·
BOJ/Bronze
문제 링크 https://www.acmicpc.net/problem/27982 문제 N × N × N 크기의 입체 공간이 있다. 공간 속 좌표는 1 ≤ i, j, k ≤ N을 만족하는 세 정수 (i, j, k)로 나타낸다. 공간 속에는 M개의 큐브들이 존재하며, 각 큐브는 정확히 하나씩의 좌표를 차지한다. 같은 좌표에는 여러 개의 큐브가 겹쳐 있지 않다. 다음 조건을 만족하는 큐브의 개수를 찾아보자. (i, j, k)에 큐브가 존재할 때, (i ± 1, j, k),(i, j ± 1, k),(i, j, k ± 1) 총 6곳 모두에 큐브가 존재한다. 입력 첫 번째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에 걸쳐 각 줄마다 세 정수 i, j, k가 주어진다. 이는 (i, j, k)에 큐브가 존재한다..
[BOJ/Gold 3] 백준 27945 슬슬 가지를 먹지 않으면 죽는다(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/27945 문제 키위새는 가지와 사랑에 빠지면서 가지로 맛있는 요리를 하기 위해 1번부터 N번까지의 번호가 붙은 N개의 요리 학원에 다니기 시작했다. 각 요리 학원 사이에는 총 M개의 양방향 길이 있고, i번째 길에는 정확히 ti일에만 문을 여는 가지 디저트 노점이 있다. (ti는 모두 다르다.) 아직 가지 요리를 배우는 중인 키위새는 직접 가지 요리를 해 먹지는 못하다 보니 가지 부족증(hypomelitzemia)이 발생했다. 키위새는 이제 매일 노점에 들러 가지 디저트를 먹지 않으면 쓰러지게 된다. 심지어 기억력도 퇴화해 N - 1개의 길만을 기억할 수 있게 되었다! 모든 요리 학원에 다닐 수 있도록 N-1개의 길을 골랐을 때, 키위..
[BOJ/Platinum 1] 백준 14413 Poklon(C++)
·
BOJ/Platinum ~ Diamond
문제 링크 https://www.acmicpc.net/problem/14413 14413번: Poklon The output must consist of Q lines, each line containing the answer to a query, respectively. www.acmicpc.net 문제 Little Mirko is a very simple man. Mirko’s friend Darko has given him an array of N natural integers and asked him Q queries about the array that Mirko must answer. Each query consists of two integers, the positions of the lef..
[BOJ/Platinum 1] 백준 13548 수열과 쿼리 6(C++)
·
BOJ/Platinum ~ Diamond
문제 링크 https://www.acmicpc.net/problem/13548 13548번: 수열과 쿼리 6 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. i j: Ai, Ai+1, ..., Aj에 가장 많이 등장하는 수가 몇 번 등장했는지 출력한다. www.acmicpc.net 문제 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. i j: Ai, Ai+1, ..., Aj에 가장 많이 등장하는 수가 몇 번 등장했는지 출력한다. 입력 첫째 줄에 수열의 크기 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100..
[BOJ/Platinum 2] 백준 2912 백설공주와 난쟁이(C++)
·
BOJ/Platinum ~ Diamond
문제 링크 https://www.acmicpc.net/problem/2912 2912번: 백설공주와 난쟁이 첫째 줄에 난쟁이의 수 N과 모자 색상의 수 C가 주어진다. (3 ≤ N ≤ 300,000, 1 ≤ C ≤ 10,000) 둘째 줄에는 각 난쟁이가 쓰고 있는 모자의 색상이 줄을 서 있는 순서대로 주어진다. 색상은 C이하의 자 www.acmicpc.net 문제 백설 공주와 난쟁이 N명과 함께 숲 속에 살고 있다. 난쟁이는 매일 광산에 일하러가고, 백설 공주는 그동안 페이스북을 하고 있다. 매일 아침 난쟁이는 한 줄로 휘파람을 불면서 광산으로 출근을 한다. 백설 공주는 그 주변을 돌아다니면서 난쟁이들 사진을 찍는다. 난쟁이가 광산에 들어가면, 백설 공주는 다시 집으로 돌아간다. 집으로 돌아가면서 찍은 ..
[BOJ/Platinum 2] 백준 8462 배열의 힘(C++)
·
BOJ/Platinum ~ Diamond
문제 링크 https://www.acmicpc.net/problem/8462 8462번: 배열의 힘 자연수 \(n\)개로 이루어진 배열 \(a_1,a_2,a_3,\dots ,a_n\)이 있다. \(l\)부터 \(r\)까지 부분 배열은 \(a_l,a_{l+1},\dots , a_r\) 이다. \(K_s\)는 부분 배열 안에 있는 자연수 \(s\)의 개수이다. 부분 배열의 힘이란 www.acmicpc.net 문제 자연수 n개로 이루어진 배열 a1, a2, a3, ..., an이 있다. l부터 r까지 부분 배열은 al, al+1, ..., ar이다. Ks는 부분 배열 안에 있는 자연수 s의 개수이다. 부분 배열의 힘이란 모든 자연수 s에 대해서, Ks · Ks · s를 합한 값이다. 배열과 부분 배열의 범위..
[BOJ/Platinum 2] 백준 13547 수열과 쿼리 5(C++)
·
BOJ/Platinum ~ Diamond
문제 링크 https://www.acmicpc.net/problem/13547 13547번: 수열과 쿼리 5 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. i j: Ai, Ai+1, ..., Aj에 존재하는 서로 다른 수의 개수를 출력한다. www.acmicpc.net 문제 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. i j: Ai, Ai+1, ..., Aj에 존재하는 서로 다른 수의 개수를 출력한다. 입력 첫째 줄에 수열의 크기 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 1,000,000) 셋째 줄..