본문 바로가기

Coding Test/백준(BOJ)

(14)
[BOJ] 백준 #11047. 동전 0 (C++) 🎨 문제 문제 링크: https://www.acmicpc.net/problem/11047 알고리즘 분류: 그리디 알고리즘 난이도: Silver 3 💬 풀이 벡터 v에 동전의 가치를 차례로 입력받고, 반복 { cnt += K/v[i]; K %= v[i]; } 👩‍💻 코드 C++ #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); //freopen("input.txt", "rt", stdin); int N, K; cin >> N >> K; vector v(N); int cnt = 0; for (int i = 0; i < N; ..
[BOJ] 백준 #1251. 단어 나누기 (C++) 🎨 문제 문제 링크: https://www.acmicpc.net/problem/1251 알고리즘 분류: 구현, 문자열, 브루트포스, 정렬 난이도: Silver 5 💬 풀이 👩‍💻 코드 C++ #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); //freopen("input.txt", "rt", stdin); string s; cin >> s; int len = s.size(); string s1, s2, s3, ans = "zzzzzzzzzzzzzzzzzzzzz"; for (int i = 1; i < len - 2..
[BOJ] 백준 #1010. 다리 놓기 (C++) 🎨 문제 문제 링크: https://www.acmicpc.net/problem/1010 알고리즘 분류: 수학, 조합론 난이도: Silver 5 💬 풀이 N,M 중 큰수에서 작은수만큼 고르는 경우의 수. 조합(컴비네이션)을 구현해주면 끝이다. 아 그리고 nCr = nCn-r 성질도 이용해줘야 하고, 중간에 long long 써야 하는 것 주의. 👩‍💻 코드 C++ #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int combination(int n, int r) { long long res = 1; int _r = r; while (_r--) { res *= n--; } while (r) { res /= r--; } retur..
[BOJ] 백준 #1051. 숫자 정사각형 (C++) 🎨 문제 문제 링크: https://www.acmicpc.net/problem/1051 알고리즘 분류: 구현, 브루트포스 난이도: Silver 3 💬 풀이 또 은근 구현이 까다로웠던 문제 한 글자씩 입력받기 ― scanf() 사용 닥치고 이중for문 돌리기 N==1 or M==1이면 그냥 1. 끝. arr[i][j]가 ‘정사각형의 왼쪽 위 꼭짓점’이라 생각하고 탐색 시작 가장 큰 걸 구하는 거니까 1부터 돌지말고 큰 것부터 ㅇㅇ. for (int k = min(N-i-1, M-j-1); k>0; k--) if (k < l) break; : 예를 들어 l=3인데 탐색 남은 줄이 2줄 밖에 없다면 할 필요 없음. ‘문자열 입력받는 여러 가지 방법 총정리’를 해야겠다. (언젠가) 입력 방법에 대해 매번 정확하..
[BOJ] 백준 #1448. 삼각형 만들기 (C++) 🎨 문제 문제 링크: https://www.acmicpc.net/problem/1448 알고리즘 분류: 수학, 그리디 알고리즘, 정렬 난이도: Silver 3 💬 풀이 세 변이 a,b,c인 삼각형에서 c가 가장 긴 변일 때 삼각형이 결정되는 조건은 c < a+b 다. 가능한 경우 중 최대를 구하면 되므로 입력받은 배열을 정렬해준 다음, 차례대로 위 삼각형 성립 조건이 되면 출력하고 종료하면 된다. 내림차순 정렬을 위해선 sort()와 greater()를 이용했다. 👩‍💻 코드 C++ #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; bool isTriangle(int c, int a, int b) { if (c < a + b) ..
[BOJ] 백준 #2078. 무한이진트리 (C++) 🎨 문제 문제 링크: https://www.acmicpc.net/problem/2078 알고리즘 분류: 수학, 트리 난이도: Silver 4 💬 풀이 문제의 무한이진트리의 어떤 노드 (a,b)에서 if a>b이면, (a,b)는 부모 노드의 왼쪽 자식이고, if ab이면, (a,b)의 부모 노드는 (a-b, b)이고, if a (3,2) -> (5,2)=(1+2*2, 2)다. 따라서 자식(a,b)에서 몫 a/b과 나머지 a%b 등의 정보로 '계속 같은 방향인 부모'를 찾을 수 있다. 💡 참고) https://lastknight00.tistory.com/121 👩‍💻 코드 C++ #define _CRT_SECURE_NO_WARNINGS #include using namespace std; int main()..