본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 17509 : And the Winner Is... Ourselves! https://www.acmicpc.net/problem/17509 17509번: And the Winner Is... Ourselves! 11 lines are given as the input. The $i$-th line contains two space-separated integers, $D_i$ and $V_i$, where $D_i$ is the amount of minutes required to solve the $i$-th problem, and $V_i$ is the number of incorrect verdicts on the $i$-th problem. For eac www.acmicpc.net greedy문제였습니다. 📕 풀이방법 📔 입력 및 초기화 정답을 출력할 penalty..
(C++) - 백준(BOJ) 25191 : 치킨댄스를 추는 곰곰이를 본 임스 https://www.acmicpc.net/problem/25191 25191번: 치킨댄스를 추는 곰곰이를 본 임스 콜라 $4$개, 맥주 $2$개로 치킨을 $4$마리까지 먹을 수 있지만, 치킨집에 치킨이 $3$마리밖에 없으므로 임스도 $3$마리까지만 먹을 수 있다. www.acmicpc.net 간단 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 chicken, coke, beer를 선언 후 입력받습니다. 📔 풀이과정 1. 먼저 집에 있는 음료수로는 coke / 2 + beer만큼 치킨을 시켜먹을 수 있습니다. 2. 하지만 시킬 수 있는 수량이 한정적이므로 치킨집에 존재하는 치킨 개수와 비교해 최솟값을 출력합니다. 📔 정답출력 최솟값을 출력합니다. 📕 Code #include using namespa..
(C++) - 백준(BOJ) 2358 : 평행선 https://www.acmicpc.net/problem/2358 2358번: 평행선 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 각 점의 좌표가 주어진다. 만약 입력에 서로 같은 두 점이 주어지면, 그 두 점을 이용하여 직선을 만들 수 있다. 좌표는 절댓값이 231보 www.acmicpc.net 자료구조 map을 사용하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 점 개수 n, 정답출력위한 변수 ans, map xMap, yMap을 선언한 뒤 입력받습니다. 📔 풀이과정 n이 10만이므로 이중 for문은 시간초과가 납니다. 따라서 nlogn시간복잡도를 가진 자료구조 map으로 해결해야합니다. x축에 평행한 직선과 y축에 평행한 직선을 구하는 문제이므로 같은 x좌표에 대..
(C++) - 백준(BOJ) 9037 : The candy war https://www.acmicpc.net/problem/9037 9037번: The candy war 입력은 표준입력(standard input)을 통해 받아들인다. 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 각각의 테스트 케이스의 첫 줄에는 아이의 인원 N (1 ≤ N ≤ 10)이 주어지고 그 다음 줄에 www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case t, 학생 수 n, candy 정보 vector candyState, 정답을 출력할 변수 cycle를 선언한 뒤 적절히 입력받습니다. 📔 풀이과정 놀이대로 구현하면 됩니다. 1. 먼저 홀수개를 가진 아이에게 1개씩 사탕을 줍니다. 2. while loop를 모든 아이가 사탕을 동일하게 가지지..
(C++) - 백준(BOJ) 1235 : 학생 번호 https://www.acmicpc.net/problem/1235 1235번: 학생 번호 첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부 www.acmicpc.net 모든 경우의 수를 탐색하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, 학생번호 길이 length, ans, 학생 번호를 저장할 vector변수 students, map변수 m을 선언합니다. 📔 풀이과정 0 ~ length - 1까지 loop를 수행합니다.1. 그 안에서 n개의 학생 list를 확인하면서 뒤에 k만큼만 남긴뒤 map에 추린 학생번호를 key, key의 빈도 수를 v..
(C++) - 백준(BOJ) 17176 : 암호해독기 https://www.acmicpc.net/problem/17176 17176번: 암호해독기 방금 도착한 암호문을 해독했는데, 해독에 오류가 없는지 확인해보려 한다. 해독한 문장이 암호문을 해석한 결과로 나올 수 없다면, 그 해독은 잘못된 것이다. 암호문은 0 이상 52 이하의 정수로 www.acmicpc.net 구현 후 정렬비교로 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 복호화된 문자열을 저장할 decodedCryptogram, 평문 origin, 암호를 저장할 배열 cryptogramVector를 선언한 후 적절히 입력받습니다. 📔 풀이과정 1. 아스키 코드표를 참조해 cryptogramVector에서 하나씩 원소를 확인한 후 복호화해 decodedCryptogram에 저장합니다.2. 암호문..
(C++) - 백준(BOJ) 24860 : Couinting Antibodies https://www.acmicpc.net/problem/24860 24860번: Counting Antibodies Immunoglobulins also known as antibodies are protein molecules. Antibodies play one of the key roles in the immune reaction --- they detect harmful foreign agents --- bacteria or viruses --- and help to eliminate them. Every foreign molecule binds with uni www.acmicpc.net 간단한 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 각 chain별 변수를 선언한 뒤 입력받습니다...
(C++) - 백준(BOJ) 18511 : 큰 수 구성하기 https://www.acmicpc.net/problem/18511 18511번: 큰 수 구성하기 첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각 www.acmicpc.net 모든 경우의 수를 탐색하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, k, 정답을 출력할 ans, k집합 vector setK, 순열을 뽑을 vector permutation를 선언하고 입력받습니다. 📔 풀이과정 2가지를 구현해야 합니다. 1. k개의 원소중 x개를 뽑아 순열로 만듭니다. 2. 뽑은 원소로 수를 이어 붙인 뒤 n과 비교..