[C++] 백준 1918번: 후위 표기식
·
problem solving/백준
문제 https://www.acmicpc.net/problem/1918 풀이 스택을 이용해 푸는 문제라는걸 알고 있어서 쉽게 풀었다. 각 연산자마다 어떤 행동을 해야 하는지 조건문을 잘 걸어줘야 한다 . 연산자의 우선순위는 아래와 같다. 1. *,/ 2. +,- 3. ), ( 소스 #include #include #include int main() { //input std::string input; std::cin >> input; //solve std::stack op; std::string result; for (int i = 0; i = 'A' && input[i]
[C++] 백준 9012번: 괄호
·
problem solving/백준
문제 https://www.acmicpc.net/problem/9012 풀이 VPS의 조건을 생각해 보았다 . ( 의 개수와 ) 개수가 같아야 한다. 마지막 문자가 반드시 ) 여야 한다. 어떤 경우도 )가 (보다 많을 수 없다. ((()))...는 세번째 문자열까지 ( 는 3개, )는 0개지만 VPS일 가능성이 있다. 하지만 )... 이나 (()))... 가 된다면 뒷 문자열을 볼 필요 없이 VPS가 아니다. 조건을 세운 후 간단한 정수로 (와 )를 적절히 카운팅하여 풀었다. count = 0로 셋팅한다. ( 일 때, count를 1씩 증가시킨다. )일 때, count를 1씩 감소시킨다. count가 0이 아니면 NO를 출력 시킨다. 소스 #include #include #include int main(..
[C++] 백준 10828번: 스택
·
problem solving/백준
문제 https://www.acmicpc.net/problem/10828 풀이 스택 개념 문제 소스 🚩 라이브러리 사용 더보기 #include #include int main() { std::stack v; char word[10]; int T; std::cin >> T; int X = 0; while (true) { std::cin >> word; if (word[3] == 'h') { std::cin >> X; v.push(X); } else if (word[0] == 'p') { if (v.size() != 0) { std::cout
[C++] 백준 1966번: 프린터 큐
·
problem solving/백준
문제 https://www.acmicpc.net/problem/1966 6 0 // N, K 1 1 9 1 1 // values 6개의 숫자 중에 0번째 숫자가 몇번째로 프린트 될까? 주어진 숫자 중에 max는 9이다. 9를 만나면 프린트를 하게 된다. 1 1 9 1 1 1 // 1은 두번째로 큰 숫자이기 때문에 뒤로 보낸다. 1 9 1 1 1 1 9 1 1 1 1 1 // 9는 가장 큰 숫자이기 때문에 출력된다. 출력 횟수 = 1 1 1 1 1 1 // 이제 가장 큰 숫자는 1이기 때문에 출력된다. 출력 횟수 = 2 1 1 1 1 // 출력 횟수 = 3 1 1 1 // 출력 횟수 = 4 1 1 // 출력 횟수 = 5 풀이 중요도 순서대로 pop 해야하기 때문에 중요도를 정렬 시켜야 한다. 이건 라이브러..
원형 큐(Circular Queue) in C++
·
problem solving/개념 정리
출처: https://www.programiz.com/dsa/circular-queue 아래 그림을 보면 0, 1에 공간이 남았지만 REAR가 컨테이너의 끝에 닿았기 때문에 더 이상 공간이 없다고 판단한다. 아니면 원소들을 다시 items[0]부터 시작하도록 옮기는데 비용이 든다. 형 큐는 원래 알던 일반 Queue를 아래 그림처럼 생각하면 된다. 일반 큐에서 삽입, 삭제를 반복하면서 사용할 수 없는 메모리가 생기는 단점을 보완한 자료 구조다. 원형 큐 동작 원형 큐는 FRONT와 REAR라는 두 가지 포인트를 가진다. FRONT는 큐의 첫번째 원소를 가리킨다. REAR는 큐의 마지막 원소를 가리킨다. FRONT와 REAR는 초기값을 -1로 설정해준다. 1. 원소 삽입 큐가 사이즈를 초과하는지 확인한다...
[c++]백준 2164번: 카드2 (원형 큐 구현 & 군수열)
·
problem solving/백준
문제 https://www.acmicpc.net/problem/2164 풀이 🚩원형 큐 앞에 카드를 빼고 뒤로 넣는다? -> 선입선출 -> queue 문제구나. 라이브러리를 사용하면 쉽게 풀 수 있고, 클래스로 직접 구현해서 풀어도 된다. 나는 겸사겸사 queue 라이브러리를 꼼꼼히 볼겸 간단하게 직접 구현해서 풀었다. Queue 라이브러리의 내부 코드가 궁금하면 아래 사이트를 참조하면 된다. https://en.cppreference.com/w/cpp/container/queue 🚩군수열 서치 하다가 군수열로 규칙찾는 방법도 있더라.. 근데 난 못 알아들음 (〃⌒▽⌒〃)ゝ https://hoho325.tistory.com/138 소스 #include #define MAX_SIZE 500001 class..
[C++] 백준 16500번: 문자열 판별
·
problem solving/백준
🔗 문제 16500번: 문자열 판별 16500번: 문자열 판별 첫째 줄에 길이가 100이하인 문자열 S가 주어진다. 둘째 줄에는 A에 포함된 문자열의 개수 N(1 ≤ N ≤ 100)이 주어진다. 셋째 줄부터 N개의 줄에는 A에 포함된 단어가 한 줄에 하나씩 주어진다. A에 www.acmicpc.net 🖍 풀이 만든 예시 softcorn 3 softc corn soft S의 문자열 하나하나 A목록과 대조 시키며 풀면 된다. idx 0 1 2 3 4 5 6 7 S s o f t c o r n A[0] s o f t A[1] c o r n A[2] s o f t c s[0]의 s로 시작하는 단어가 있는지 A를 뒤지고 s[1]의 o로 시작하는 단어가 있는지 A를 뒤지고 … 이걸 s.size()만큼 반복한다. 이..
[C++] Replit에서 컴파일 및 실행하는 방법
·
programming
1. .replit 수정 language = "cpp" run = "g++ -o .cpp" 2. 실행 파일 실행 ./ 매번 컴파일할 파일명 바꾸는 거 귀찮은데 다른 없나?..
[C++] 백준 13458번 : 시험감독
·
problem solving/백준
🔗 문제 13458번: 시험 감독 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 🖍 풀이 총감독은 필수이기 때문에 최소 N명의 감독님. 그리고 우리가 구할 것은 부감독님의 인원이다. 부감독이 필요한 경우는 총감독이 감독하지 못한 사람이 있는 경우 - Ai - B > 0 필요한 부감독님 인원은 (Ai - B)%C == 0 일 때, (Ai-B)/C (Ai-B)%C != 0 일 때, (Ai-B)/C + 1 풀이가 필요할까..? 조건의 수가 크기 때문에 결과를..