Koder / 박성훈
article thumbnail
백준 BOJ 2644 - 촌수계산
알고리즘/백준 BOJ 2021. 1. 15. 15:32

기본적인 BFS 문제 bfs만 짜면 AC받을수 있다. www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net #include #include #include using namespace std; vector v[123]; queue q; int visit[123] = {0}; void bfs(){ while(!q.empty()){ int node = q.front(); q.pop(); for(int i=0; i

article thumbnail
백준 BOJ 2660 - 회장뽑기
알고리즘/백준 BOJ 2021. 1. 15. 15:09

정올 너무 맵다 ㅗㅜㅑ www.acmicpc.net/problem/2660 2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net 각 회원들에 대하여 전부 bfs를 돌려본 다음 bfs의 결과 중 최대값이 점수가 된다. #include #include #include #include using namespace std; vector v[56]; queue q; int visit[56] = {0}; vector ans; void bfs(){ while(!q.empty()){ int node = q.front(); q.p..

article thumbnail
백준 BOJ 2668 - 숫자고르기
알고리즘/백준 BOJ 2021. 1. 15. 13:30

정올 초등부 문제. 아니 초등학생이 이런거 풀수 있어요....? 너무 무섭다 ㄷㄷㄷ www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 이 문제는 사이클의 갯수를 세는 문제이다. 문제에 주어진 케이스의 경우, 1에서 시작하는 사이클 한개, 3에서 시작하는 사이클 한개, 5에서 시작하는 사이클 한개. 이 세가지 케이스에서 나오는 갯수 3이 정답이고, 사이클을 이루는 원소들은 1 3 5이다. 이를 구현하면 #include int arr[123] = {0..

article thumbnail
백준 BOJ 15649 - N과 M(1)
알고리즘/백준 BOJ 2021. 1. 12. 12:52

간단한 dfs문제 1번부터 순회하면서 출력해주면 반드시 사전순을 충족하게 짤 수 있다. www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net arr[]은 출력할 답을 저장하는 배열이고, visit[]은 방문여부를 저장해준다. ( 같은 수가 중복으로 나오는것을 방지하기 위해서 ) #include #include using namespace std; int n,m; int arr[10] = {0}; int visit[10] = {0}; void dfs(int k){..

article thumbnail
백준 BOJ 2485 - 가로수
알고리즘/백준 BOJ 2021. 1. 11. 22:17

이 문제의 핵심은 최대공약수이다. 이걸 중학교 2학년때 풀었던거같은데 그때 한참걸렸던걸 지금 몇분만에 풀어내는걸 보니 참 감회가 새롭다.. ㅋㅋ 가장 먼 나무 - 가까운 나무로 길이를 구하고, 최대공약수로 나눠준 다음 가장 끝에 +1 해줘서 나무의 전체 수를 구한다. 그다음 입력된 나무의 수인 N을 빼주면 우리가 원하는 답을 찾을 수 있다. #include #include using namespace std; typedef long long int ll; int input[123456] = {0}; int arr[123456] = {0}; ll gcd(ll a, ll b){ while(b!=0){ ll r = a%b; a = b; b = r; } return a; } int main(){ int n; s..

article thumbnail
백준 BOJ 10994 - 별 찍기 - 19
알고리즘/백준 BOJ 2021. 1. 11. 21:25

별 찍기 문제 그냥 구현만 해주면 된다. 문제 내는 사람도 귀찮았나보다 ㅎ www.acmicpc.net/problem/10994 #include int arr[400][400] = {0}; void draw(int pos, int len){ for(int x=pos; x

반응형