목록백준/여러가지 문제들 (39)
Study hard
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net [풀이] C++ STL string에 정의된 함수 find_first_of를 사용하여 풀 수 있다. 값을 찾지 못할 경우 npos(default: -1)가 저장되므로 따로 -1을 저장하는 과정이 필요 없다. #include #include using namespace std; string S; int Alphabet[26]; void solution() { cin >> S; for (..
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" -')'와 짝을 이루는 '('가 앞에 없는 ..