https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net C++로 작성한 백준 문제 1920번 수 찾기에 대한 문제 풀이다. 실버 4 문제로 자료구조, 정렬, 이진탐색이 문제를 푸는데 필요한 주요 지식이다. 문제 설명 문제 N개의 정수 A[1], A [2], …, A [N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100..
분류 전체보기
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net C++로 작성한 백준 문제 10815번 숫자 카드에 대한 문제 풀이다. 실버 5 문제로 이분탐색, 자료구조, 정렬, 해싱이 문제를 푸는데 필요한 주요 지식이다. 문제 설명 문제 숫자 카드는 정수 하나가 적혀 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net C++로 작성한 백준 문제 1931번 회의실 배정에 대한 문제 풀이다. 실버 1 문제고, 그리디 알고리즘과 정렬이 문제를 푸는데 필요한 주요 지식이다. 문제 설명 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수..
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net C++로 작성한 백준 문제 1541번 잃어버린 괄호에 대한 문제 풀이다. 실버 2 문제로 수학, 그리디 알고리즘, 문자열, 파싱이 문제를 푸는데 필요한 주요 지식이다. 문제 설명 문제 세준이는 양수와 +, -, 그러고 괄호를 가지고 식을 만들었다. 그러고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 ..
https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net C++로 작성한 백준 문제 13305번 주유소에 대한 문제 풀이다. 실버 3 문제이고, 그리디 알고리즘이 문제를 푸는데 필요한 주요 지식이다. 문제 설명 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 ..
출처: https://www.youtube.com/watch?v=rk41rBXq3zQ&t=698s 나중에 받아올 자료형은 Future 변수명 으로 선언하고, Future.value(값) 으로 받아온다. Future.delayed 함수를 통해 몇초 후에 해당 결과를 출력할 수 있다. Future.delayed 함수 아래의 코드를 바로 실행시킨다. 즉, Future.delayed()에서 지연되는 동안 아래코드가 실행되기에 아래코드가 먼저 처리된 것 처럼 보일 수 있다. 그냥 결과 나올때 까지 안 기다려주고, 바로 아래 것 실행하는 거다. await 를 Future 앞에 쓰면 Future 코드가 완전히 끝날때까지 기다렸다가 아래코드를 실행시킨다. 단 await을 쓰기 위해서는 await이 들어있는 함수의 파라..
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net C++로 작성한 백준 문제 11399번 ATM에 대한 문제 풀이다. 그리디 알고리즘과 정렬 이 문제를 푸는데 필요한 주요 지식이다. 문제 설명 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는 데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. ..
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 풀이 가장 기초적인 그리디 알고리즘 문제다. 동전을 가장 적게 가져가기 위해서는 , 큰 금액의 동전이 최대면 된다. 즉, 일단 총금액에서 최대의 동전을 가져갈 수 있을 만큼 가져가고, 그다음 크기의 동전을 가져갈 수 있을 만큼 가져가고.. 이걸 반복하면 된다. 예를들어 1260원이 있다 치면 500원으로 최대개수인 2개 가져가고, 2..