250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- C++ 공부
- 군인
- 24524
- 백준
- 알고리즘
- 그린델발트 캠핑장
- 오리스프
- 백준으로 c++ 공부하기
- 피르스트 자전거
- 16236 c++
- 대학생
- C++ 공부하기
- iles dHyeres
- 로이커바트
- 융프라우 스위스 패스
- porquerolles
- Replit
- auto code review
- C++
- 그린델발트 자전거
- 코딩
- 로이커바트 숙소
- 군대
- 시뮬레이션
- 1654
- 프랑스 남부 섬
- 군대코딩
- 백준 C++
- openai api
- 백준으로 C++ 공부
Archives
- Today
- Total
기억보다는 기록을 해볼까
DSLR 9019 (백준으로 C++공부하기 26일차) 본문
728x90
음 맨 처음에 숫자를 문자열로 받을지 아니면 정수형으로 받을지 고민함.
좀 오래거림
큐에 string형도 넣을 수 있다.
이런 식으로 string 형에 출력을 할 때 + "문자" 식으로도 출력을 할 수 있다.
cout << dslr + "D";
#include <iostream>
#include <queue>
#include <cmath>
#include <vector>
using namespace std;
typedef pair<int, string> pii;
int T;
int str;
int ans;
void dfs() {
bool vst[10000] = {false};
bool Dno = false;
queue<pii> q;
string a;
q.push({str, a});
while(!q.empty()) {
int num = q.front().first;
string dslr = q.front().second;
q.pop();
//D
int Dnum = num;
Dnum = (Dnum * 2) % 10000;
if(!vst[Dnum]){
q.push({Dnum, dslr + "D"});
vst[Dnum] = true;
if(Dnum == ans) {
cout << dslr + "D";
return;
}
}
//S
int Snum = num;
if (Snum == 0) {
Snum = 9999;
if(!vst[Snum]){
q.push({Snum, dslr + "S"});
vst[Snum] = true;
if(Snum == ans) {
cout << dslr +"S";
return;
}
}
}
else {
Snum = Snum - 1;
if(!vst[Snum]){
q.push({Snum, dslr + "S"});
vst[Snum] = true;
if(Snum == ans) {
cout << dslr + "S";
return;
}
}
}
//L
int Lnum = num;
int Ltmp = Lnum / 1000;
Lnum *= 10;
Lnum %= 10000;
Lnum += Ltmp;
if(!vst[Lnum]){
q.push({Lnum, dslr + "L"});
vst[Lnum] = true;
if(Lnum == ans) {
cout << dslr + "L";
return;
}
}
//R
int Rnum = num;
int Rtmp = Rnum % 10;
Rnum /= 10;
Rnum += Rtmp * 1000;
if(!vst[Rnum]){
q.push({Rnum, dslr + "R"});
vst[Rnum] = true;
if(Rnum == ans) {
cout << dslr +"R";
return;
}
}
}
}
int main() {
cin >> T;
while(T--) {
cin >> str;
cin >> ans;
dfs();
cout << "\n";
}
}
728x90
'백준으로 C++ 공부하기' 카테고리의 다른 글
리모콘 1107 (백준으로 C++ 공부하기 28일차) (0) | 2021.12.09 |
---|---|
적록색약 10026 (백준으로 C++ 공부하기 27일차) (0) | 2021.12.08 |
백준으로 C++ 공부 25일차 (5430) (0) | 2021.12.06 |
백준으로 C++ 공부 24일차 (2667, 6064, 7569, 11286, 11403, 16928) (0) | 2021.12.05 |
C++ 23일차 (1697, 1992, 2178) (0) | 2021.11.24 |
Comments