본문 바로가기
반응형

PS 문제 풀이/Baekjoon446

[BOJ] 백준 14425 문자열 집합 Approach 출처: https://www.acmicpc.net/problem/14425 집합 S에 같은 문자열은 주어지지 않는다. 이에 대한 구현은 할 필요가 없다. 처음 주어지는 N개의 문자로 Hash Table을 구성한다. 다음 M개의 문자열을 입력받을 때 Hash Table에 해당 문자열이 존재하는 확인한다. 📌 [C++] [STL] Set [C++] [STL] Set Set - 중복 없는 원소만을 가지는 집합 같은 것이다. (중복 허용 X) - 헤더파일: #include - set에 들어가는 원소는 자동으로 정렬된다. - set은 기본적으로 오름차순(less) 정렬이고 greater 조건자로 내림 zoosso.tistory.com Hash Table을 구현한다는 것에서 조건이 까다롭지 않기 때.. 2022. 2. 15.
[BOJ] 백준 2908 상수 Approach 출처: https://www.acmicpc.net/problem/2908 입력 받은 두수를 거꾸로 뒤집어서 비교하는 문제이다. 나눗셈과 나머지 연산으로 한자리씩 숫자를 뒤집을 수 있다. C++ #include int A, B; int foo(int x) { int ret = 0; // 한자리씩 뒤로 밀기 for (int i = x ; i ; i /= 10) { ret *= 10; // 기존 숫자 앞으로 밀기 ret += (i % 10); // 1의 자리에 해당하는 숫자 채우기 } return ret; } int main() { // freopen("input.txt", "r", stdin); scanf("%d %d", &A, &B); A = foo(A); B = foo(B); printf.. 2022. 2. 14.
[BOJ] 백준 2902 KMP는 왜 KMP일까? Approach 출처: https://www.acmicpc.net/problem/2902 문제 이름 "KMP" 알고리즘과는 관련 없는 문제이다. 문자열을 제어하는 문제로 첫번째 대문자와 하이픈(-) 다음에 나타나는 대문자를 출력하면 된다. 문제에서 조건 보장해주기 때문에 하이픈 다음에 글자가 있는지 체크하는 등 추가 로직이 필요 없다. C++ #include #include using namespace std; string str; int main() { // freopen("input.txt", "r", stdin); cin >> str; // 첫번째 대문자 출력 cout 2022. 2. 12.
[BOJ] 백준 2864 5와 6의 차이 Approach 출처: https://www.acmicpc.net/problem/2864 주어지는 숫자에서 5와 6이 서로 변경될 수 있을 때 나올 수 있는 최소 합과 최대 합을 구하는 문제이다. 경우의 수는 5 or 6 으로 2가지이지만 합이 최소가 되는 경우는 6 → 5 가 되어야 한다. 합이 최대가 되는 경우는 5 → 6 이 되어야 한다. 예를들어 16796 와 58786 가 주어졌을 때, 최소합을 구하는 경우는 15795 + 58785 = 74580 C++ #include using namespace std; int A, B; int copyVal, ret; int multiplier, tmp; int func(int num, int from, int to) { ret = 0; copyVal = .. 2022. 1. 23.
[BOJ] 백준 2864 5와 6의 차이 Approach 출처: https://www.acmicpc.net/problem/2864 주어지는 숫자에서 5와 6이 서로 변경될 수 있을 때 나올 수 있는 최소 합과 최대 합을 구하는 문제이다. 경우의 수는 5 or 6 으로 2가지이지만 합이 최소가 되는 경우는 6 → 5 가 되어야 한다. 합이 최대가 되는 경우는 5 → 6 이 되어야 한다. 예를들어 16796 와 58786 가 주어졌을 때, 최소합을 구하는 경우는 15795 + 58785 = 74580 C++ #include using namespace std; int A, B; int copyVal, ret; int multiplier, tmp; int func(int num, int from, int to) { ret = 0; copyVal = .. 2022. 1. 23.
[BOJ] 백준 2839 설탕배달 Approach 출처: https://www.acmicpc.net/problem/2839 문제 요구사항을 토대로 쉽게 구현할 수 있는 문제이다. 5개와 3개짜리를 담을 수 있는 봉지가 있다. 봉지 개수를 최소화해야 하기 때문에 하나의 봉지에 많이 담을 수 있도록 5개 봉지 물량을 많이 확보해야 한다. 5개 봉지를 최대한으로 했을 때, 3개 짜리 봉지를 개수 조절해 모든 사탕을 담을 수 있는지 반복문으로 확인 #include using namespace std; int N; int main() { // freopen("input.txt", "r", stdin); cin >> N; // 봉지를 최소화 할 수 있게 5개 봉지를 최대한 많이 확보 for (int i = N / 5; i >= 0; i--) { i.. 2022. 1. 21.
[BOJ] 백준 2789 유학금지 Approach 출처: https://www.acmicpc.net/problem/2789 문자열이 주어졌을 때, { 'C','A','M','B','R','I','D','G','E' }에 해당하는 부분은 제외하고 다시 출력하는 문제이다. BOJ 특성상 데이터를 따로 저장하지 않고 바로 출력하면 된다. #include #include using namespace std; string str; char forbidden[9 + 1] = { 'C','A','M','B','R','I','D','G','E' }; bool check(char ch) { for (int i = 0; i > str; for (int i = 0; i < str.length(); i++) { if (check(str[i])) { cout 2022. 1. 20.
[BOJ] 백준 2775 부녀회장이 될테야 Approach 출처: https://www.acmicpc.net/problem/2775 문제 조건에 따르면 아파트는 14층(1 ~ 14)까지 있으며, 각 층마다 14호(1 ~ 14)까지 있다. 추가적으로 각 층마다 인원수 처리를 위해 0층에 i 호에는 i명이 산다. • apart[층][호] → apart[15][15] 정도의 크기를 지닌다. • 0 층의 각 i호는 i명이 산다. → apart[0][i] = i ex) apart[0][1..14] = {1, 2, 3, ..., 13, 14} • 각 층의 i 호에 사는 사람은 아래 연산 결과와 동일하다. → apart[floor][i-1] + apart[floor-1][i] • 각 층의 1호에는 1명씩만 산다. → 이는 apart[floor][0] = 0 .. 2022. 1. 17.
[BOJ] 백준 2740 행렬 곱셈 Approach 출처: https://www.acmicpc.net/problem/2740 행렵 곱셈을 구현하는 문제이다. 행렬 곱셈을 위해서는 (N × M) * ( #include using namespace std; const int MAX_SIZE = 100 + 2; int A[MAX_SIZE][MAX_SIZE], B[MAX_SIZE][MAX_SIZE], result[MAX_SIZE][MAX_SIZE]; int N, M, K; int main() { scanf("%d %d", &N, &M); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { scanf("%d", &A[i][j]); } } scanf("%d %d", &M, &K); for (in.. 2022. 1. 15.
[BOJ] 백준 14935 FA Approach 출처: https://www.acmicpc.net/problem/14935 일정횟수 반복해서 동일한 단어가 나오는지 확인하는 문제 아스키(Ascii) 코드를 이용해서 가공되는 문자를 구해준다. → (첫번째 문자) * (문자열 길이) 아스키(Ascii) 코드 활용 아스키(Ascii) 코드 활용 프로그래밍 문제를 풀 때(PS)는 0 ~ 9 숫자를 문자로 표현하는 경우도 있고, 반대로 "A ~ Z" 혹은 "a ~ z" 문자를 정수형으로 이용하는 경우가 있다. 이때 이용하는 것이 아스키( zoosso.tistory.com 구현하다가 문득 문제를 다시 보게 되었는데,,, while문 break 조건이 명확하지 않기에 NFA 숫자라면 무한 Loop에 빠진다. 분석해보면 해당 문제는 어떤 숫자가 주어.. 2022. 1. 15.
반응형