Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 클라우드 컴퓨팅
- Spring
- gcp
- 카프카
- Spring Data JPA
- 로드밸런서
- Kafka
- 백준
- 스프링 부트
- 스프링
- 알고리즘
- 자료구조
- 쿠버네티스
- 프로그래밍문제
- Docker
- 오일러프로젝트
- Elasticsearch
- 백트래킹
- 코드업
- 월미도
- aws
- JPA
- springboot
- 스프링부트
- Apache Kafka
- 인천여행
- VPC
- 클라우드
- Spring Boot
- DFS
Archives
- Today
- Total
GW LABS
[Backjoon] 숫자놀이 본문
백준 1755번 숫자놀이는 요건에 따라 Map을 정렬하면 쉽게 풀 수 있는 문제였다. C++의 경우 맵을 정렬하는 API가 없기 때문에 Vector 타입으로 변경하여 해결해야 한다. 아래는 풀이 소스이다. 정렬 함수는 C++의 람다 함수를 통해서 구현했다.
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
map<int, string> numberMap = {
{0, "zero"}, {1, "one"}, {2, "two"}, {3, "three"},
{4, "four"}, {5, "five"}, {6, "six"}, {7, "seven"},
{8, "eight"}, {9, "nine"}
};
int main() {
int m, n;
cin >> m >> n;
map<int, string> container;
for (int i = m; i <= n; ++i) {
string target = "";
int first = i / 10;
int second = i % 10;
if (first != 0) {
target += numberMap[first] + " ";
}
target += numberMap[second];
container[i] = target;
}
vector<pair<int, string>> vec(container.begin(), container.end());
sort(vec.begin(), vec.end(), [](const pair<int, string>& a, const pair<int, string>& b){
if (a.second == b.second) return a.first < b.first;
return a.second < b.second;
});
int counter = 0;
for (auto pair : vec) {
cout << pair.first << " ";
counter++;
if (counter % 10 == 0) cout << "\n";
}
return 0;
}
'Algorithm & DataStructure' 카테고리의 다른 글
[Backjoon] 촌수계산 (0) | 2021.02.28 |
---|---|
[Backjoon] 소수&팰린드롬 (0) | 2021.01.12 |
[Backjoon] 트럭 주차 (0) | 2021.01.02 |
[Backjoon] 회전하는 큐 (0) | 2020.12.18 |
[Backjoon] 통나무 건너뛰기 (0) | 2020.12.13 |
Comments