백준/BRONZE

    [백준 23972번][C++] 악마의 제안

    #include #include using namespace std; int main() { long long K, N; cin >> K >> N; //N이 1일때만 항상 손해 if (N == 1) { cout (N * K) % (N - 1) //소수점이 나올때 그보다 크고 가까운 정수로 출력 if ((N * K) % (N - 1)) { cout

    [백준 3003번][C++] 킹, 퀸, 룩, 비숍, 나이트, 폰

    #include using namespace std; int main() { //각 말의 원래 있어야 할 개수 int chess[6]{1,1,2,2,2,8}; //현개 가지고 있는 말의 수 빼고 출력 int input; for (int i = 0;i > input; chess[i] -= input; cout

    [백준 10807번][C++] 개수 세기

    #include using namespace std; int main() { //-100 ~ 100 의 수의 개수를 담기위한 201이상 크기의 배열 int list[204]{ 0, }; int test; cin >> test; int input; //수 입력받고 그에맞는 INDEX의 수 증가 for (int i = 0;i > input; //음수일 때는 201을 더해주어 INDEX 100이상으로 취급 if (input > input; if (input < 0) { input += 201; } cout

    [백준 2455번][C++] 지능형 기차

    #include #include using namespace std; int main() { //각 역에서의 기차안 사람 수를 저장하는 배열 int people[4]{0,}; //내리고 / 타는 사람 int down, up; //처음역에서의 사람 계산 cin >> down >> up; people[0] = up; //나머지 역에서의 사람 수 계산 for (int i = 1;i > down >> up; people[i] = people[i - 1] - down + up; } //오름차순으로 정렬 sort(people, people + 4); //가장 큰 수 출력 cout

    [백준 16503번][C++] 괄호 없는 사칙연산

    cal 함수를 만들어 사용했습니다 #include using namespace std; //사칙연산 기호에 따라 연산값을 리턴하는 함수 int cal(int n, int m, char c) { if (c == '+') return n + m; else if (c == '-') return n - m; else if(c=='/') return n / m; else return n * m; } int main() { //계산정보 입력받기 int n1, n2, n3; char c1, c2; cin >> n1 >> c1 >> n2 >> c2 >> n3; int result1, result2; //계산순서에 따라 결과값 저장하기 result1 = cal(cal(n1, n2, c1), n3, c2); result2..

    [백준 15829번][C++] Hashing

    {모듈러 속성} (a + b) mod n = ((a mod n) + (b mod n)) mod n (a - b) mod n = ((a mod n) - (b mod n)) mod n (a * b) mod n = ((a mod n) * (b mod n)) mod n #include #include #include using namespace std; int main() { long long hashNum = 0; //알파벳 길이수 int len; cin >> len; //문장 받음 string str; cin >> str; //각 문자에 해당하는 수열 저장 vector nums; for (int i = 0;i < len; i++) { nums.push_back(str[i] - 'a' + 1); } long ..

    [백준 2010번][C++] 플러그

    플러그의 개수가 주어지고 플러그 마다 꽂을 수 있는 개수가 주어질때 연결할 수 있는 컴퓨터의 개수를 구하는 문제입니다 여기서 주의할 점은각 플러그마다 한자리는 다음 플러그의 전원이 꽂힌다는 점입니다 물론 마지막 플러그에서는 낭비없이 모두 전원에 연결할 수 있겠죠 따라서 마지막 플러그를 제외하고 플러그마다 -1를 해준 값이 컴퓨터를 연결할 수있는 값이 됩니다! #include using namespace std; int main() { int num; cin >> num; //멀티탭의 개수 int sum=0; //총 꽂을 수 있는 컴퓨터 개수 int plug; //플러그마다 꽂을 수 있는 개수 //마지막 플러그를 제외한 총 꽂을 수 있는 개수 for(int i=0;i> plug; sum += plug - ..

    [백준 2609번][C++] 최대 공약수와 최소 공배수

    유클리드 호제법을 이용한 최대공약수와 최소공배수 구하기 코드는 어렵게 적어놓았지만 기본 개념은 상당히 간단합니다! 두 수를 A와 B라고 했을때 A%B = 0 이라고 했을 때 A는 B의 배수이기 때문에 최대 공약수는 B입니다 이런 사실에 대해 A%B가 0이 아닌 C라고 가정했을 때 A와 B의 최대 공약수는 B와 C의 최대공약수와 같다는 원리가 유클리드 호제법입니다. 따라서 ? % ? = ? 의 기본식에서 나머지가 0이 될 때까지 값들을 업데이트 해준다면 쉽게 찾을 수 있습니다 또한 최소공배수와 최대공약수를 곱한 값은 두 수를 곱한 값과 동일합니다. #include using namespace std; //유클리드 호제법을 이용한 최대 공약수 구하기 int gcd(int n1, int n2) { int mo..