문자열

    [백준 - 4358] 생태학 [C++]

    1. 문제 https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 2. 풀이 문제 자체는 어렵지 않지만 자주 안쓰면 까먹을법한 내용들이 많이 들어있다. 1. 입력의 개수가 따로 주어지지 않고 EOF면 종료하는 방법 while(getline(cin, str)) { // EOF면 종료 ... } 2. 소수점 자리수 맞추는 방법 // 소수점 4자리까지 표시 cout

    [백준 - 7490] 0 만들기 [C++]

    1. 문제 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 2. 풀이 전형적인 브루트포스 문제이다.. 나의 경우 두번 '출력 형식이 잘못되었습니다' 를 받았었는데.. '각 테스트 케이스의 결과는 한 줄을 띄워 구분한다.' 이것을 간과한채 제출했었다.. 케이스별로 한 줄씩 띄워주니까 맞았다.. 문제는 연산자 3개로 표현가능한 모든 식을 만들어보고 그 식을 계산했을 때 0인지 판정하면된다. c++에는 eval함수가 없어서 직접 구현했다.. 3. 코드 #include #include #include #..

    [백준 - 1541] 잃어버린 괄호 [C++]

    1. 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 2. 풀이 첫 번째 '-' 연산자가 나타날 때까지는 모든 숫자들을 더하고, 첫 번째 '-' 연산자가 나타난 이후의 모든 숫자들은 빼주면 된다. 3. 코드 #include #include #include using namespace std; string expression; string number; int answer; bool isNegative = false; // 1541 /..

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

    1. 문제 https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 2. 풀이 NOTE - ans에서 곱할때 a와 r^i를 곱할때 int 범위를 벗어날 수 있으므로 long long int로 해주어야한다. 나머지 연산의 성질도 알고있으면 좋다.. - (A+B)%M = (A%M + B%M) % M - (AXB)%M = (A%M X B%M) % M - (A-B)%M = (A%M - B%M + M) % M ← 안 쪽에 + M을 해줘야 음수가 안 나오게 됨...