전체 글(724)
-
[백준/BOJ] 백준 2922번 : 즐거운 단어
www.acmicpc.net/problem/2922 2922번: 즐거운 단어 상근이는 자신이 다니는 학교에서 영어단어를 가장 많이 외우고 있다. 그 비법은 바로 조기교육이었다. 상근이는 젖병을 물기도 전에 영어 단어를 외웠다. 따라서, 지금은 자리에 앉으면 사전을 www.acmicpc.net 밑줄에 모음을 넣는 경우, L을 제외한 자음을 넣는 경우, L을 넣는 경우 이렇게 3가지로 나눠서 문제를 해결했다. 모음을 넣는다고 할 때는 결과값에 모음의 개수 5를 곱하고, L을 제외한 자음을 넣는다고 할 때는 결과값에 20(자음(21개)-L(1개))을 곱하고, L을 넣는다고 할때는 결과값에 1을 곱해서 문제를 해결했다. 코드 #include #include #include #include using namesp..
2021.02.19 -
[백준/BOJ] 백준 14391번 : 종이 조각
www.acmicpc.net/problem/14391 14391번: 종이 조각 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, www.acmicpc.net 게임판을 덮는 문제와 비슷하게 문제를 해결했다. 코드 #include #include #include #include using namespace std; int n, m; vector board; int dxdy[7][4][2] = { {{0,0},{0,0},{0,0},{0,0} }, //한칸 type=0 {{0,0},{0,1},{0,0},{0,0}}, //가로 두칸 type=1 {{0,0},{0,1},{0..
2021.02.19 -
[백준/BOJ] 백준 3830번 : 교수님은 기다리지 않는다
www.acmicpc.net/problem/3830 3830번: 교수님은 기다리지 않는다 교수님의 질문 (? a b)이 입력으로 들어올 때 마다, 지금까지 측정한 결과를 바탕으로 a와 b의 무게 차이를 계산할 수 있다면, b가 a보다 얼마나 무거운지를 출력한다. 무게의 차이의 절댓값이 1,000, www.acmicpc.net 유니온 파인드를 활용하여 문제를 해결했다. vector root_gap(100001); 에 자신이 속한 루트와의 무게 차이를 저장했다. (예: root_gap[a] = 100 이면 루트가 a보다 100만큼 더 무거운 것) b가 a보다 w그램 무겁다고 할 때, b 쪽으로 merge 하며 b의 무게 = a무게 + w 라는것을 고려해서 root_gap[a_root] = root_gap[b..
2021.02.19 -
[백준/BOJ] 백준 1208번 : 부분수열의 합 2
www.acmicpc.net/problem/1208 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 수열을 절반으로 나눠서 앞쪽 부분 부분 수열의 합을 구하고 뒤쪽 부분 부분 수열의 합을 구한다 그리고 앞쪽 부분, 뒤쪽 부분 각각 수가 나올 때마다 앞쪽 부분은 vector front_part_to_cnt(4000001, 0)에, 뒤쪽 부분은 vector back_part_to_cnt(4000001, 0)에 해당 수를 표시하는 인덱스에(+ 2000000 한곳) 개수를 추가..
2021.02.19 -
[백준/BOJ] 백준 3865번 : 학회원
www.acmicpc.net/problem/3865 3865번: 학회원 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 학회의 수 n이 주어진다. n은 100을 넘지 않는 양의 정수이다. 다음 n개 줄에는 각 학회의 학회원 정보가 문제에서 www.acmicpc.net multimap adj;를 통해 그래프를 만들고 깊이 우선 탐색(dfs)을 통해 문제를 해결했다. 코드 #include #include #include #include #include using namespace std; int n; multimap adj; map visited; void Pre() { adj.clear(); visited.clear(); } int Solve(string here) { visi..
2021.02.19 -
[백준/BOJ] 백준 1007번 : 벡터 매칭
www.acmicpc.net/problem/1007 1007번: 벡터 매칭 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속 www.acmicpc.net 벡터의 합에는 더해지는 부분과 빼지는 부분이 있으므로 더해지는 점을 골라서 (골라지지 않은 점은 빼지는 점) 벡터 합의 길이를 구해서 문제를 해결했다. 코드 #include #include #include #include using namespace std; int tc; int n; vector p; void Pre() { p.clear(); } //더해지는 점을 절반 고른다 double Solve(..
2021.02.19