728x90

백준 알고리즘 190

백준] 4613 - Quicksum(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력인풋에 # 이 들어오기 전까지 계속 입력을 받는다. 각각의 패킷은 한줄에 하나씩 입력이 되며 공백으로 시작되거나 끝나지 않으며, 대문자만 입력이 된다. 패킷의 길이는 1~255자이다. 출력각각의 패킷에 따라 한줄에 하나씩 Quicksum 을 출력하라 소스코드 #include #include using namespace std; int main(void) { while (1) { string s; getline(cin, s); if (s == "#") break; int sum = 0, len = s.length(); for (int i = 0; i < len; i++) { if ((char)s[i] == ' '); else sum += (int)(s[i] ..

백준] 7785 - 회사에 있는 사람(KBTU)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 출근, "leave"인 경우는 퇴근이다.회사에는 동명이인이 없으며, 대소문자가 다른 경우에는 다른 이름이다. 출력현재 회사에 있는 사람의 이름을 사전 순의 역순으로 한 줄에 한 명씩 출력한다. 소스코드 #include #include #include #include #include using namespace std; int main(void) { int n; map list; cin >> n; while (n--) { string ..

백준] 3059 - 등장하지 않는 문자의 합

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 대문자로만 구성되어 있고, 최대 1000글자이다. 출력각 테스트 데이터에 대해, 입력으로 주어진 문자열 S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 한 줄에 하나씩 출력한다. 소스코드 #include #include using namespace std; int main(void) { int t, sum, len; cin >> t; while (t--) { string s; bool check[26] = { false, }; cin >> s; sum =..

백준] 9324 - 진짜 메시지(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 100 이하의 테스트 케이스의 개수가 주어진다. 그리고 각 테스트 케이스마다 대문자로만 이루어진 10만자 이하의 문자열 M이 한 줄에 주어진다. (검사해야할 메시지다) 출력테스트 케이스마다 메시지 M이 진짜 메시지면 “OK”를, 가짜 메시지면 “FAKE”를 한 줄에 출력한다. 소스코드 #include #include using namespace std; int main(void) { int t, len; bool real = true; cin >> t; while (t--) { string s; int arr[26] = { 0, }; cin >> s; len = s.length(), real = true; for (int i = 0; i < le..

백준] 3035 - 스캐너(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다. 다음 R개 줄에는 신문 기사가 주어진다. 출력스캐너에 스캔된 결과를 총 R*ZR개 줄에 걸쳐서 C*ZC개 문자씩 출력한다. 소스코드 #include using namespace std; int main(void) { int r, c, zr, zc; char arr[51][51]; cin >> r >> c >> zr >> zc; for (int i = 0; i > arr[i]; for (int i = 0; i < r; i++) { for (int l = 0; l < zr; l++) { for (int j =..

백준] 5046 - 전국 대학생 프로그래밍 대회 동아리 연합(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 참가자의 수 1 ≤ N ≤ 200, 예산 1 ≤ B ≤ 500000, 호텔의 수 1 ≤ H ≤ 18, 고를 수 있는 주의 개수 1 ≤ W ≤ 13이 주어진다. 다음 줄부터 각 호텔의 정보가 주어지며, 호텔의 정보는 두 줄로 이루어져 있다. 첫번째 줄에는 그 호텔의 일인당 숙박비용 1 ≤ p ≤ 10000이 주어지고, 둘째 줄에는 i번째 주에 투숙 가능한 인원 0 ≤ a ≤ 1000이 주어진다. 출력첫째 줄에 대회를 개최할 수 있으면 최소 비용을 출력하고, 없으면 "stay home"을 출력한다. 소스코드 #include using namespace std; int main(void) { int n, b, h, w, min, p, sum = 0; ..

백준] 11048 - 이동하기

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 미로의 크기 N, M이 주어진다. (1 ≤ N, M ≤ 1,000) 둘째 줄부터 N개 줄에는 총 M개의 숫자가 주어지며, r번째 줄의 c번째 수는 (r, c)에 놓여져 있는 사탕의 개수이다. 사탕의 개수는 0보다 크거나 같고, 100보다 작거나 같다. 출력첫째 줄에 준규가 (N, M)으로 이동할 때, 가져올 수 있는 사탕 개수를 출력한다. 소스코드 #include using namespace std; int arr[1001][1001], dp[1001][1001] = { 0, }; int main(void) { int n, m, max; cin >> n >> m; for (int i = 1; i arr[i][j]; for (int i = 1; i

백준] 1788 - 피보나치 수의 확장

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 n이 주어진다. n은 절대값이 1,000,000을 넘지 않는 정수이다. 출력첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절대값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절대값을 1,000,000,000으로 나눈 나머지를 출력한다. 소스코드 #include using namespace std; long long dp[1000001] = { 0, 1, }; int main(void) { int n, k; cin >> n; if (n < 0) k = -n; else k = n; for (int i = 2; i 0) cout

728x90