본문 바로가기

반응형

baekjoon

(28)
[백준][C++] 2477 : 참외밭 https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net - 문제 ㄱ-자 와 비슷한 모양인 밭에서 자랄 수 있는 참외의 수를 구하는 문제이다. - 해설 total을 통해 1,2,3,4(방향) 중에서 한번씩만 나온 것을 곱해주면 총 사각형의 면적을 구할 수 있고, small을 통해 1,2,3,4 중에서 두 번씩 나온 것들 중에서 사이에 작은 사각형을 만드는 길이들을 구해서 작은 사각형의 면적을 구해 빼주면 된다. 이후에 면적당 참외가 자라는 만큼 곱하면..
[백준][C++] 11478 : 서로 다른 부분 문자열의 개수 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net - 문제 문자열이 주어지면 그 문자열의 부분 문자열 중에서 서로 다른 문자열의 개수를 구하는 문제다. - 해설 substr와 map를 이용해서 쉽게 풀 수 있다. - 풀이 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); string s; map m; cin >> s; for (int i = 0; i < s.size();..
[백준][C++] 1269 : 대칭 차집합 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net - 문제 두 집합이 주어지면 두 집합의 차집합을 모두 더하는 문제다. - 해설 이건 map으로 풀어야 한다는 생각 없이 그냥 풀었다가 진짜 브론즈 문제인것 처럼 find를 이용해 차집합을 구했다. 다른 사람들이 푼 거 중에서 가장 잘 만들었고 내가 만약 map으로 풀었으면 이렇게 풀었을 것 같은 걸 같이 첨부하겠다. - 풀이 #include #include using namespace std..
[백준][C++] 1764 : 듣보잡 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net - 문제 이름이 포함된 array가 두개 주어지면 둘 모두에 있는 이름을 출력한다. - 해설 map를 만들어서 두 개의 이름 집합에 대해서 ++해주면 2 이상인 이름이 듣도보도 못한 이름이 된다. - 풀이 #include #include #include #include using namespace std; #define fastio \ ios_base::sync_with_stdio(false);..
[백준][C++] 10816 : 숫자 카드 2 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net - 문제 주어진 정수 배열을 저장한 후 2번째 정수배열가 주어지면 2번째 정수배열에 있는 정수가 1번째 정수배열에서 몇 번 나왔는지 출력하는 문제다. - 해설 이것도 map 를 이용해서 숫자를 키값으로 저장해놓고 풀면 쉽다. - 풀이 #include #include using namespace std; int main() { ios_base::sync_with_s..
[백준][C++] 1620 : 나는야 포켓몬 마스터 이다솜 https://www.acmicpc.net/problem/1620 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net - 문제 포켓몬 이름을 저장한 다음에 번호가 주어지면 해당 번호에 맞는 포켓몬 이름을 출력하는 문제다. - 해설 map랑 map을 만들거나 map랑 vector을 만들면 된다. - 풀이 #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false);..
[백준][C++] 10815 : 숫자 카드 https://www.acmicpc.net/problem/10815 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net - 문제 두 개의 정수 배열이 주어지면 서로 같은 숫자가 있으면 1, 아니면 0을 출력하는 문제다. - 해설 이것도 map 를 이용해서 숫자를 키값으로 저장해놓고 풀면 쉽다. - 풀이 #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie..
[백준][C++] 14425 : 문자열 집합 https://www.acmicpc.net/problem/14425 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net - 문제 S 문자열이 여러개 주어지면 이후에 주어지는 문자열 중에서 S에 속한 애가 몇개인지 찾는 문제다. - 해설 map을 이용해서 를 통해 string 을 키값으로 저장하면 쉽게 셀 수 있다. - 풀이 #include #include #include using namespace std; int main() { ios_base::sync_with_..

반응형