algorithm 79

[C++] vector 중복 제거

programmers.co.kr/learn/courses/30/lessons/68644?language=cpp 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 두 개 뽑아서 더하기 darklight sublimevimemacs C++ 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한..

algorithm/Expert 2021.02.18

[팀정하기]- 2

올해 열리는 ICPC를 위해 삼성대학교 학생들이 팀을 만들기로 하였다. 이 대회는 세 명이 하나의 팀을 이뤄 출전하는 대회인데, 학교에서는 팀에는 무조건 남학생 두 명과 여학생 한 명으로 구성되어야 한다고 규정을 만들었다. 삼성대학교에는 N명의 남학생과 M명의 여학생이 있다. 삼성대학교는 가능하면 많은 팀을 만들고 싶어 한다. 그런데 대학교에서는 여러 기업들과 협약을 맺고 있어 이번 년도에 적어도 K명의 학생을 인턴으로 보내야 한다. 대회는 인턴을 하는 기간 중에 있어 대회에 나가는 학생은 인턴을 하면 안 된다. N = 6, M = 3, K = 2인 경우 아래의 그림과 같다. 파란색이 남학생 6명, 빨간색이 여학생 3명 일 때 2개의 팀이 최대로 형성된다. 그러므로 적어도 K명의 학생들은 대회에 참가하지..

algorithm/Expert 2021.02.18

[입국심사] - 1

programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을..

algorithm/Expert 2021.02.18

BOJ-2252 줄세우기

www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1≤N≤32,000), M(1≤M≤100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이 www.acmicpc.net dfs로 풀수 있지만. 위상정렬 공식으로 풀었다. 훕냐.. 공식.. 은 공식이다. import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.ut..

algorithm/BOJ 2020.12.26

BOJ - 2056 작업

www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 위상정렬 공부다가.. 결국 DP로 처리한다.. 위상정렬이 어렵네.. import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; p..

algorithm/BOJ 2020.12.25

BOJ 2225 - 합분해

www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net dfs 문제인 줄 알았는데.. DP 문제다. 잘 모르겠어서 이삭님 풀이 보고 풀었다. blog.naver.com/kdy246/222184773335 백준 알고리즘 - #2225 합분해 문제/생각 정리 문제문제 풀이한 방법이 문제는 다이나믹 프로그래밍을 활용하면 쉽게 풀 수 있었다.​생각해봐야 할 것은 ... blog.naver.com 파스칼의 삼각형 문제로 D[i-1][j] + D[i][j-1]을 반복해서 계산하는 형태이다. 그런데.. 왜 D[N][K] 가 답이 아닌 D[N][K-1] 이 답이 되는지는 모르겠다.. 움움 어렵네

algorithm/BOJ 2020.12.25

BOJ 1948 - 임계 경로

www.acmicpc.net/problem/1948 1948번: 임계경로 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 10,000)이 주어지고 둘째 줄에는 도로의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 도로의 정보가 주어진다. 처음에는 도로의 www.acmicpc.net 위상정렬을 이용한 문제인데.. 문제 자체 이해가 어렵다. 최단거리가 아닌, 최장 거리를 구하고.. 그때 간선의 개수를 구하는 문제이다. DP 스럽게 풀었다. import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; imp..

algorithm/BOJ 2020.12.25

boj-2820 자동차 공장

https://www.acmicpc.net/problem/2820 2820번: 자동차 공장 상근이는 자동차를 매우 좋아한다. 자동차 공장에 취직한 상근이는 계속된 승진 끝에 드디어 사장이 되었다. 공장에는 총 N명의 직원이 있다. 상근이를 제외한 모든 직원은 한 명의 상사가 있다. www.acmicpc.net 우선 문제 이해가 어려웠다. 뭘 하라는건지... 한참 만에 따라 하다 억지로 이해중.. 우선 range update를 팬윅트리를 이용해서 진행했다. static void updateRange(int a, int b, int v){ update(a, v); update(b+1, -v); } 문제는 하위 직원을 구하는 부분이 었는데.. 단순 dfs의 탐색이 아니라. 전위순회(pre-order)를 찾아야..

algorithm/BOJ 2020.12.02

BOJ 1806 - 투포인트

www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 부분합이지만, 부분합의 원소를 구하는 것이 아니라, 부분합이 S인 최소원소 길이를 구하는 것이라, 투포인트 S, E로 구하면 된다. 처음엔 접근이 어려웠으나,.. 풀다 보니.. 조금씩 이해하려 한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.S..

algorithm/BOJ 2020.11.21