목록분류 전체보기 (217)
Study hard

https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net [풀이] int형 배열에 해당 알파벳이 나올때마다 해당 알파벳 - 'a' 번째 index 자리에 +1 해준다. #include #include using namespace std; string S; int Alphabet[26]; void solution() { cin >> S; for (int i = 0; i < S.size(); i++) { int index = S[i] - 'a'; Alphabet[index] ++ ; } for (int i = 0; i < 26; i++) { cout

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 �� www.acmicpc.net [풀이] C++ STL의 deque를 사용하여 풀 수 있다. 명령을 입력받는 동시에 deque명령을 실행해준다. #include #include #include using namespace std; int N; string str; dequed; void solution() { cin >> N; for (int i = 0; i > str; if ..

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 �� www.acmicpc.net [풀이] C++ STL의 queue를 사용하여 풀 수 있다. 각 명령어를 입력받는 동시에 queue 명령을 처리하면 된다. #include #include #include using namespace std; int N; string str; queueq; void solution() { cin >> N; for (int i = 0; i > st..

https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저� www.acmicpc.net [풀이] 레이저가 나오면 레이저에 의해 잘린 레이저 왼쪽의 조각의 수를 더해주는 방법을 사용하였다. 1. '('가 나오면 막대 수 +1 2. ')'가 나오면 레이저인지 아닌지 판별 후, 레이저이면 조각 수 더해주고, 아니면 막대가 끝났음을 표시 ※주의할 점※ -'()'가 나오면 레이저 이므로 '('에서 막대 수 +1 한 것을 다시 빼주어야 한다. -막대가 끝나면 막대 수에서 빼는 걸로 끝나는 게 아니라 끝..

https://www.acmicpc.net/problem/9012 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)�� www.acmicpc.net [풀이] 두 가지 방법을 통해 풀어보았다. 1. int형 변수를 사용하여 '('가 나오면 +1, ')'가 나오면 -1 하는 방법 2. stack을 사용하여 '('가 나오면 push 1, ')'가 나오면 pop 하는 방법 ※공통적으로 주의할 점 -맨 처음에 ')'가 나오거나 맨 뒤에 '('가 나오는 경우는 무조건 "NO" -')'와 짝을 이루는 '('가 앞에 없는 ..

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 � www.acmicpc.net [풀이] C++ STL의 stack을 사용하여 풀 수 있다. 순서대로 명령을 입력받자마자 그 명령에 해당하는 일을 처리한다. #include #include #include using namespace std; void solution() { stacks; int N, pushNum; string str; cin >> N; for (int i = 0; i < N; i++) {..