반응형

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

 

2866번: 문자열 잘라내기

첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다. 가장 처음에 주어지는 테이블에는 열을 읽어서 문자

www.acmicpc.net

 

행과 열을 뒤집어서 입력받은 뒤, 슬라이싱을 통해 시뮬레이션을 하며 cnt 값을 구했습니다.

#include <iostream>
#include <vector>
#include <set>
using namespace std;
int r, c, cnt = 0, f;
vector<string> str(1000);
char ch;
set<string> st;
string s;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin >> r >> c;
	for (int i = 0; i < r; i++)
		for (int j = 0; j < c; j++) {
			cin >> ch;
			str[j].push_back(ch);
		}
			

	for (int i = 1; i < r; i++) {
		f = 0;
		st.clear();
		for (int j = 0; j < c; j++) {
			s = str[j].substr(i);
			if (st.find(s) == st.end()) st.insert(s);
			else {
				f = 1;
				break;
			}
		}
		if (f) break;
		cnt++;
	}
	cout << cnt;
}
반응형

'Algorithm' 카테고리의 다른 글

백준 15501 : 부당한 퍼즐  (0) 2021.11.11
백준 1713 : 후보 추천하기  (0) 2021.11.11
백준 10546 : 배부른 마라토너  (0) 2021.11.11
백준 1700 : 멀티탭 스케줄링  (0) 2021.11.11
백준 9576 : 책 나눠주기  (0) 2021.11.11

+ Recent posts