분류 전체보기 205

C

[BOJ 7795] S3 먹을 것인가 먹힐 것인가 { C++ }

7795번: 먹을 것인가 먹힐 것인가 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net C++ (400ms) 입력받은 두 배열을 정렬 한 뒤, 2중 반복문을 돌리며 arr 배열의 원소가 brr 배열의 원소보다 작거나 같기 전까지 cnt를 하나씩 올린다. #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int T; cin >> T; while (T--) { in..

카테고리 없음 2022.07.11

C

[BOJ 7785] S5 회사에 있는 사람 { C++ }

7785번: 회사에 있는 사람 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net C++ #include #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int N, idx; string name, status; set S; cin >> N; while (N--) { cin >> name >> status; if (status == "enter") S.insert(name)..

카테고리 없음 2022.07.05

C

[BOJ 1417] S5 국회의원 선거 { C++ }

1417번: 국회의원 선거 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net C++ #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int N, T[51] = {0, }, cnt = 0, i, idx; cin >> N; // 받을 개수가 하나라면 계산 없이 종료 if (N T[i]; while (true) { int max = 0; for (i = 1; i < N; i++) // 인덱스 1 ~ N-1 중에서 가장 큰..

카테고리 없음 2022.07.04

C

[BOJ 20920] S3 영단어 암기는 괴로워 { C++ }

20920번: 영단어 암기는 괴로워 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net C++ #include #include #include #include using namespace std; bool cmp(pair &a, pair &b) { // 두 int 값 이 같으면 두번째 정렬 조건으로 if (a.second == b.second) { // 두 문자열의 길이가 같으면 세번째 정렬 조건으로 if (a.first.length() == b...

C

[BOJ 1302] S4 베스트 셀러 {C++}

1302번: 베스트셀러 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net C++ #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); pair P = {"", -1}; map M; string S; int N; cin >> N; /************************** * * S : 입력 받을 문자열 * M : map이 중복 제거 및 문자열 알파벳 순 정렬을 해준다! * P : 가장 많이 팔린 책 정..

C

[BOJ 9733] S5 꿀벌 {C++}

9733번: 꿀벌 C++ #include #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); cout.setf(ios::fixed); cout.precision(2); unordered_map M; string S, ord[] = {"Re", "Pt", "Cc", "Ea", "Tb", "Cm", "Ex"}; int T = 0; /************************** * * S : 입력 받을 문자열 * M : 중복 제거 map 자료구조 * T : 전체 일 개수 **************************/ while (getline(cin, S)) { stringstream ss(S); // s..

C

[BOJ 16499] S4 동일한 단어 그룹화하기 {C++}

16499번: 동일한 단어 그룹화하기 16499번: 동일한 단어 그룹화하기 첫째 줄에 단어의 개수 N이 주어진다. (2 ≤ N ≤ 100) 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 10을 넘지 않는다. www.acmicpc.net C++ unordered_set은 정렬을 하지 않고 중복만 제외하는 set 자료 구조이다. unordered_set 으로 선언하면 unordered_map 형태와 같다. 입력되는 모든 문자열을 알파벳 순으로 정렬해 중복을 제거하면 문제에서 요구하는 알파벳 구성이 다른 문자열의 개수를 찾을 수 있다. #include #include #include using namespace std; int main() { ios..

C

[BOJ 2891] S5 카약과 강풍 {C++}

2891번: 카약과 강풍 2891번: 카약과 강풍 첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 1 ≤ S, R ≤ N) 둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않 www.acmicpc.net C++ 좀 더 세련된 풀이를 하고싶었지만 귀차니즘은 이길 수 없었다! #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int N, S, R, K; cin >> N >> S >> R; /************************************* N : 팀의 수 (2 ≤ N ≤ 10) S : 카약이 손..

C

[ BOJ 6550 ] S5 UCPC는 무엇의 약자일까? { C++ }

15904번: UCPC는 무엇의 약자일까? 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net C++ #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); string S, U = "UCPC"; int i = 0; /************************************* S : 전체 문자열 i : "UCPC"를 순차적으로 비교하기 위한 인덱스 ***********************..

C

[ BOJ 6550 ] S5 부분 문자열 { C++ }

6550번: 부분 문자열 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 입력 데이터의 개수가 주어지지 않으므로, 무한루프로 돌다가 공백이 입력되면 break 문자열 t의 각 문자들을 한 번씩 순회하며 s가 가진 문자가 나올 때마다 idx를 높여준다. 순회 종료 후 idx와 s의 길이가 같으면 순서대로 모두 존재하는 것이므로 Yes. C++ #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); string S, s, t..