😮 위상 정렬이란?순서가 정해져 있는 작업을 차례로 수행해야 할 때 그 순서를 결정해주기 위해 사용하는 알고리즘입니다. 즉, 그래프의 흐름(순차적인 그래프)이 있고 다양한 조건들이 서로 얽혀있을 때, 정확히 1열로 그래프의 각 노드를 나열할 수 있도록 하는 것이 위상 정렬입니다. 예를 들어보겠습니다.위 그림과 같이 총 3개의 과목이 있다고 가정해봅시다. 세 과목을 모두 듣기 위해서는 `자료구조 -> 알고리즘 -> 고급 알고리즘` 순서로 과목을 들어야 합니다. 만약 `자료구조 -> 고급 알고리즘 -> 알고리즘` 순서로 과목을 듣는다면, 해당 순서는 올바른 학습 순서가 아닙니다. 위상 정렬은 다음과 같은 개념이 필요합니다.진입차수 : 특정한 노드가 있을 때 그 노드로 들어오는 다른 노드의 갯수를 의미합니..
🔗 문제 링크 https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 문제 설명 ▶ 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. → 명령은 총 다섯 가지이다. 1. 1 X: 정수를 스택에 넣는다. (1 ≤ X ≤ 100,000) 2. 2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 '1'을 대신 출력한다. 3. 3: 스택에 들어있는 정수의 개수를 출력한다. 4. 4: 스택이 비어있으면 `1`, 아니면 `0`을 ..
🔗 문제 링크 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 문제 설명 ▶ 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예시 · 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 제한 조건 · M이상 N이하의..
🔗 문제 링크 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 설명 ▶ 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 · 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 · 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. · 단, 가장 많이 사용된 알파벳이 여러 개..
🔗 문제 링크 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 설명 ▶ 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 제한 조건 · 문자열의 길이는 1,000,000을 넘지 않는다. · 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. · 문자열은 공백으로 시작하거나 끝날 수 있다. ✨ 풀이 과정 💡처음 생각해냈던 풀이 방법 1. 문자열 안에 있는 단어의 개수를 세는 ..