백준 10824번: 네 수
https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 문제 네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오. 두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다. 입력 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) 출력 A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다. 코드 #include #include using namespace..
2020.03.16
백준 11655번: ROT13
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. 예를 들어, "Baekjoon Online Judge"를 ROT13으로 암호화하면 "Onrxwbba Bayvar Whqtr"가 된다. ROT13으로 암호화한 내용을 원래 내용으로 바꾸려면 암호화한 문자열을 다시 ROT13하면 된다. 앞에서 암호화한 문자열 "Onrxwbba Bayvar Whqtr"에 다시 ROT13을 적용하면 "Baekjoon Online Judge"가 된다. ROT1..
2020.03.16
백준 2765번: 단어 길이 재기
https://www.acmicpc.net/problem/2743 2743번: 단어 길이 재기 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다. 출력 첫째 줄에 입력으로 주어진 단어의 길이를 출력한다. 코드 #include using namespace std; int main(void){ char c[100]; int i=0; cin>>c; while(c[i]!='\0' || i>100) i++; cout
2020.03.16
백준 10820번: 문자열 분석
https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. www.acmicpc.net 문제 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. 입력 첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다. 출력 첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, ..
2020.03.16
백준 10809번: 알파벳 찾기
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있..
2020.03.16
백준 10808번: 알파벳 개수
https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. 코드 #include #include using namespace std; int main(void){ string s; cin>>s; int alpha[26]..
2020.03.16
백준 10866번: 덱
https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘쨰 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 문제 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가..
2020.01.23
백준 10845번: 큐
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. ..
2020.01.23

https://www.acmicpc.net/problem/10824

 

10824번: 네 수

첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)

www.acmicpc.net

 

 

 

 

문제

 

네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.

두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.

 

 

 

입력

 

첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)

 

 

 

출력

 

A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다.

 

 

 

 

코드

 

#include <iostream>
#include <string>

using namespace std;

int main(void){
	string a, b, c, d;

	cin>>a>>b>>c>>d;

	a+=b; c+=d;

	cout<<stoll(a)+stoll(c)<<'\n'; // int의 범위를 넘어가기 때문에 stoi 대신 stoll 사용
}

 

728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 1406번: 에디터  (0) 2020.03.16
백준 11656번: 접미사 배열  (0) 2020.03.16
백준 11655번: ROT13  (0) 2020.03.16
백준 2765번: 단어 길이 재기  (0) 2020.03.16
백준 10820번: 문자열 분석  (0) 2020.03.16

https://www.acmicpc.net/problem/11655

 

11655번: ROT13

첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.

www.acmicpc.net

 

 

 

 

 

문제

 

ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다.

예를 들어, "Baekjoon Online Judge"를 ROT13으로 암호화하면 "Onrxwbba Bayvar Whqtr"가 된다. ROT13으로 암호화한 내용을 원래 내용으로 바꾸려면 암호화한 문자열을 다시 ROT13하면 된다. 앞에서 암호화한 문자열 "Onrxwbba Bayvar Whqtr"에 다시 ROT13을 적용하면 "Baekjoon Online Judge"가 된다.

ROT13은 알파벳 대문자와 소문자에만 적용할 수 있다. 알파벳이 아닌 글자는 원래 글자 그대로 남아 있어야 한다. 예를 들어, "One is 1"을 ROT13으로 암호화하면 "Bar vf 1"이 된다.

문자열이 주어졌을 때, "ROT13"으로 암호화한 다음 출력하는 프로그램을 작성하시오.

 

 

 

입력

 

첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.

 

 

 

출력

 

첫째 줄에 S를 ROT13으로 암호화한 내용을 출력한다.

 

 

 

코드

 

#include <iostream>
#include <string>

using namespace std;

int main(void){
	string plain;
	char cipher[100];
	getline(cin, plain);

	for(int i=0; i<plain.length(); i++){
		// 공백이나 숫자는 무시
		if(plain[i]==' ' || (plain[i]-'0')/10 < 1)
			cipher[i]=plain[i];	
		// 대문자일 경우
		else if((plain[i]-'A')/26 < 1)
			cipher[i]='A'+(plain[i]-'A'+13)%26;
		// 소문자일 경우
		else if((plain[i]-'a')/26 < 1)
			cipher[i]='a'+(plain[i]-'a'+13)%26;
	}

	for(int i=0; i<plain.length(); i++)
		cout<<cipher[i];
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 11656번: 접미사 배열  (0) 2020.03.16
백준 10824번: 네 수  (0) 2020.03.16
백준 2765번: 단어 길이 재기  (0) 2020.03.16
백준 10820번: 문자열 분석  (0) 2020.03.16
백준 10809번: 알파벳 찾기  (0) 2020.03.16

https://www.acmicpc.net/problem/2743

 

2743번: 단어 길이 재기

알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

 

 

 

문제

 

알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오.

 

 

 

입력

 

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다.

 

 

 

출력

 

첫째 줄에 입력으로 주어진 단어의 길이를 출력한다.

 

 

 

 

코드

 

#include <iostream>

using namespace std;

int main(void){
	char c[100];
	int i=0;

	cin>>c;

	while(c[i]!='\0' || i>100) i++;

	cout<<i<<'\n';
}

 

728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 10824번: 네 수  (0) 2020.03.16
백준 11655번: ROT13  (0) 2020.03.16
백준 10820번: 문자열 분석  (0) 2020.03.16
백준 10809번: 알파벳 찾기  (0) 2020.03.16
백준 10808번: 알파벳 개수  (0) 2020.03.16

https://www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

www.acmicpc.net

 

 

 

 

 

문제

 

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.

각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

 

 

 

입력

 

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

 

 

 

출력

 

첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.

 

 

 

코드

 

#include <iostream>
#include <string>

using namespace std;

int main(void){
	
	for(int i=0; i<100; i++){
		string s;
		getline(cin, s);
		
		if(s.length()==0) break;
		
		int small=0, big=0, num=0, space=0;
		
		for(int j=0; j<s.length(); j++){
			if(s[j]==' ') space++;
			else if((s[j]-'0')/10<1) num++;
			else if((s[j]-'A')/26<1) big++;
			else if((s[j]-'a')/26<1) small++;
		}
		cout<<small<<' '<<big<<' '<<num<<' '<<space<<'\n';
	}
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 11655번: ROT13  (0) 2020.03.16
백준 2765번: 단어 길이 재기  (0) 2020.03.16
백준 10809번: 알파벳 찾기  (0) 2020.03.16
백준 10808번: 알파벳 개수  (0) 2020.03.16
백준 10866번: 덱  (0) 2020.01.23

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

www.acmicpc.net

 

 

 

 

문제

 

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

 

 

 

입력

 

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

 

 

 

출력

 

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

 

 

 

 

코드

 

#include <iostream>
#include <string>

using namespace std;

int main(void){
	string s;
	cin>>s;

	int alpha[26]={ 0, };
	int idx[26];

	// idx 배열 초기화
	for(int i=0; i<26; i++) idx[i]=-1;

	for(int i=0; i<s.length(); i++){
		alpha[s[i]-'a']++;
		if(idx[s[i]-'a']==-1) idx[s[i]-'a']=i;
	}

	for(int i=0; i<26; i++)
		cout<<idx[i]<<' ';
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 2765번: 단어 길이 재기  (0) 2020.03.16
백준 10820번: 문자열 분석  (0) 2020.03.16
백준 10808번: 알파벳 개수  (0) 2020.03.16
백준 10866번: 덱  (0) 2020.01.23
백준 10845번: 큐  (0) 2020.01.23

https://www.acmicpc.net/problem/10808

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

 

 

 

 

 

문제

 

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.

 

 

 

입력

 

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

 

 

 

출력

 

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

 

 

 

 

코드

 

#include <iostream>
#include <string>

using namespace std;

int main(void){
	string s;
	cin>>s;

	int alpha[26]={ 0, };

	for(int i=0; i<s.length(); i++)
		alpha[s[i]-'a']++;

	for(int i=0; i<26; i++)
		cout<<alpha[i]<<' ';
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 10820번: 문자열 분석  (0) 2020.03.16
백준 10809번: 알파벳 찾기  (0) 2020.03.16
백준 10866번: 덱  (0) 2020.01.23
백준 10845번: 큐  (0) 2020.01.23
백준 10799번: 쇠막대기  (0) 2020.01.23

https://www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘쨰 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

www.acmicpc.net

 

 

 

 

문제

 

정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여덟 가지이다.

  • push_front X: 정수 X를 덱의 앞에 넣는다.
  • push_back X: 정수 X를 덱의 뒤에 넣는다.
  • pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 덱에 들어있는 정수의 개수를 출력한다.
  • empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.
  • front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.

 

 

입력

 

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘쨰 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

 

 

 

출력

 

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

 

 

 

 

코드

 

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int deque[10000];
int f=0; // 앞
int r=0; // 뒤

void push_front(int n){
	for(int i=r-1; i>=0; i--) deque[i+1]=deque[i];
	deque[f]=n;
	r++;
}

void push_back(int n){
	deque[r]=n;
	r++;
}

void pop_front(){
	if(f!=r){
		cout<<deque[f]<<'\n';
		f++;
	} else cout<<-1<<'\n';
}

void pop_back(){
	if(f!=r){
		cout<<deque[r-1]<<'\n'; 
		r--;
	} else cout<<-1<<'\n';
}

void size(){
	cout<<r-f<<'\n';
}

void empty(){
	if(r==f) cout<<1<<'\n';
	else cout<<0<<'\n';
}

void front(){
	if(f!=r) cout<<deque[f]<<'\n'; 
	else cout<<-1<<'\n';
}

void back(){
	if(f!=r) cout<<deque[r-1]<<'\n'; 
	else cout<<-1<<'\n';
}

int main(void){
    ios_base::sync_with_stdio(false); 

	int n;
	cin>>n;

	string s[10001];
	int num;

	for(int i=1; i<=n+1; i++)
		getline(cin, s[i]);

	for(int i=1; i<=n+1; i++){
		if(strncmp(s[i].c_str(), "push_front", 10)==0) {
			s[i].erase(0, 11);
			push_front(stoi(s[i]));
		}
		if(strncmp(s[i].c_str(), "push_back", 9)==0) {
			s[i].erase(0, 10);
			push_back(stoi(s[i]));
		}
		if(s[i]=="pop_front") pop_front();
		if(s[i]=="pop_back") pop_back();
		if(s[i]=="size") size();
		if(s[i]=="empty") empty();
		if(s[i]=="front") front();
		if(s[i]=="back") back();
	}
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 10809번: 알파벳 찾기  (0) 2020.03.16
백준 10808번: 알파벳 개수  (0) 2020.03.16
백준 10845번: 큐  (0) 2020.01.23
백준 10799번: 쇠막대기  (0) 2020.01.23
백준 9012번: 괄호  (0) 2020.01.23

https://www.acmicpc.net/problem/10845

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

www.acmicpc.net

 

 

 

 

 

문제

 

정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여섯 가지이다.

  • push X: 정수 X를 큐에 넣는 연산이다.
  • pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 큐에 들어있는 정수의 개수를 출력한다.
  • empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
  • front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.

 

 

입력

 

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

 

 

 

출력

 

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

 

 

 

 

코드

 

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int queue[10000];
int f=0;
int r=0;

void push(int n){
	queue[r]=n;
	r++;
}

void pop(){
	if(f!=r){
		cout<<queue[f]<<'\n'; 
		f++;
	} else cout<<-1<<'\n';
}

void size(){
	cout<<r-f<<'\n';
}

void empty(){
	if(r==f) cout<<1<<'\n';
	else cout<<0<<'\n';
}

void front(){
	if(f!=r) cout<<queue[f]<<'\n'; 
	else cout<<-1<<'\n';
}

void back(){
	if(f!=r) cout<<queue[r-1]<<'\n'; 
	else cout<<-1<<'\n';
}

int main(void){
    ios_base::sync_with_stdio(false); 

	int n;
	cin>>n;

	string s[10001];
	int num;

	for(int i=1; i<=n+1; i++)
		getline(cin, s[i]);

	for(int i=1; i<=n+1; i++){
		if(strncmp(s[i].c_str(), "push", 4)==0) {
			s[i].erase(0, 5);
			push(stoi(s[i]));
		}
		if(s[i]=="pop") pop();
		if(s[i]=="size") size();
		if(s[i]=="empty") empty();
		if(s[i]=="front") front();
		if(s[i]=="back") back();
	}
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 10808번: 알파벳 개수  (0) 2020.03.16
백준 10866번: 덱  (0) 2020.01.23
백준 10799번: 쇠막대기  (0) 2020.01.23
백준 9012번: 괄호  (0) 2020.01.23
백준 10828번: 스택  (0) 2020.01.23