문제
https://www.acmicpc.net/problem/28445
개념
문자열, 구현, 자료구조, 정렬
실행 결과
코드(c++)
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
string f_body, f_tail;
string m_body, m_tail;
cin >> f_body >> f_tail;
cin >> m_body >> m_tail;
set<pair<string, string>> s;
string colors[] = {f_body, f_tail, m_body, m_tail};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
s.insert({colors[i], colors[j]});
}
}
for (auto pair : s) {
cout << pair.first << " " << pair.second << "\n";
}
}
코드 설명
입력받는 4가지 색상을 중복없이 조합하는 문제이다.
pair<string, string="">타입의 set 집합을 선언한다.
각 색상을 중첩 반복문으로 순회하면서 각각 몸통, 꼬리 색에 저장한다.
set 라이브러리를 사용한 이유?
사전순으로 중복 없이 출력해야 하므로 set 라이브러리를 이용하면 매우 간단한 코드를 짤 수 있다!
auto?
auto는 C++에서 변수의 타입을 자동으로 추론해주는 키워드로, 알아서 string으로 타입을 추론해서 넣어준다!
'PS' 카테고리의 다른 글
[백준] 15649번: N과 M (1) (0) | 2024.09.18 |
---|---|
[백준] 11399번: ATM (0) | 2024.09.17 |
[백준] 18110번: solved.ac (0) | 2024.09.15 |
[백준] 9095번: 1, 2, 3 더하기 (0) | 2024.09.15 |
[백준] 1463번: 1로 만들기 (0) | 2024.09.13 |