문제 : https://www.acmicpc.net/problem/13163


[알고리즘풀이]

getline을 이용해 띄어쓰기를 포함한 한 줄씩 입력을 받고 먼저 god을 출력한 후, 문장을 순회하며 첫 번째 띄어쓰기 뒤부터 글자를 출력해준다.

#include<iostream>
#include<string>

using namespace std;

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int N; string input; char temp;
	cin >> N;
	cin >> temp; // 엔터입력날리기위해
	for (int i = 0; i < N; i++) {
		bool check = false;
		getline(cin, input);
		cout << "god";
		for (int j = 0; j < input.length(); j++) {
			if (check == false && input[j] == ' ')
				check = true;
			if (check && input[j] != ' ')
				cout << input[j];
		}
		cout << '\n';
	}
}

 

문제 : https://www.acmicpc.net/problem/18229


[알고리즘풀이]

단순 구현 문제로 사람들이 손을 뻗은 횟수 M을 기준으로

S[i] 배열에 '현재까지 i번 째 사람이 손을 뻗은 거리'를 계속 누적해가며 탐색을 진행한다.

#include<iostream>

using namespace std;

int N, M, K, map[100][100], s[100] = {};

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> N >> M >> K;
	for (int i = 0; i < N; i++)
		for (int j = 0; j < M; j++)
			cin >> map[i][j];
	for (int j = 0; j < M; j++) {
		for (int i = 0; i < N; i++) {
			s[i] += map[i][j];
			if (s[i] >= K) {
				cout << i + 1 << ' ' << j + 1;
				i = N; j = M;
			}
		}
	}
	return 0;
}

 

문제 : https://www.acmicpc.net/problem/18228


[알고리즘풀이]

펭귄의 위치 p를 기준으로 왼쪽에서 제일 작은 값, 오른쪽에서 제일 작은 값을 찾아 그 얼음들을 부수면 펭귄이 추락하게 된다. 즉, 단순 구현 문제다.

#include<iostream>
#include<algorithm>
using namespace std;

int N, n[200000] = {}, p, l_m=1000000001, r_m=1000000001;
int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> N;
	for (int i = 0; i < N; i++){
		cin >> n[i];
		if (n[i] == -1)
			p = i;
	}
	for (int i = 0; i < p; i++)
		l_m = min(l_m, n[i]);
	for (int i = p + 1; i < N; i++)
		r_m = min(r_m, n[i]);
	cout << l_m + r_m;
}

 

안녕하세요, 여행벌입니다.

이산수학 Express(2011) 13장 - 오토마타 연습문제 풀이입니다.

틀린 부분은 같이 댓글로 얘기해보면

좋을 것 같습니다!

이산수학 13장 오토마타, 형식언어, 문법.pdf
1.78MB

+ Recent posts