본문 바로가기

이코테(C++)

(15)
미로 탈출 내가 작성한 BFS코드 이다. #include #include #include using namespace std; int n,m; int map[201][201]; int visited[201][201]; int dist[201][201]; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; queue q; void bfs(int x,int y){ q.push(make_pair(x,y)); visited[x][y]=1; while(!q.empty()){ x=q.front().first; y=q.front().second; q.pop(); for(int k=0;k> n >> m; // 2차원 리스트의 맵 정보 입력 받기 for (int i = 0; i < n; i++) { for ..
음료수 얼려 먹기 전형적인 DFS/BFS문제이다. 그냥 map을 돌면서 연결된 영역의 개수를 구해주면 되는 문제이다. DFS로 풀수도 있고 BFS로도 풀 수 있다. 연습을 위해 두가지 코드 모두 작성하였다. - BFS코드 #include #include #include #include using namespace std; int n,m,cnt; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int map[1001][1001]; int visited[1001][1001]; queue q; void bfs(int x,int y){ q.push(make_pair(x,y)); visited[x][y]=1; while(!q.empty()){ x=q.front().first; y=q.front().sec..
게임 개발 #include #include #include using namespace std; bool flag=false; int n,m; int nowx,nowy; int dir; int cnt=1; int dx[]={0,1,0,-1}; int dy[]={-1,0,1,0}; int map[51][51]; int visited[51][51]; void move(int x,int y){ visited[x][y]=1; while(true){ flag=false; for(int k=0;k>nowx>>nowy>>dir; for(int i=0;imap[i][j]; } } move(nowx,nowy); cout n >> m; // 현재 캐릭터의 X 좌표, Y 좌표, 방향을 입력받기 cin >> x >> y >> direc..
왕실의 나이트 #include #include #include #include using namespace std; string input; int row,col; int dx[]={1,2,2,1,-1,-2,-2,-1}; int dy[]={2,1,-1,-2,-2,-1,1,2}; int main() { //freopen("input.txt","r",stdin); cin>>input; col=input[1]-'0'; row=input[0]-'a'+1; int cnt=0; for(int i=0;i
1이 될 때까지 #include #include #include using namespace std; int main() { freopen("input.txt","r",stdin); int n,k; int count=0; cin>>n>>k; while(true){ if(n==1) break; if(n%k==0){ n/=k; count++; } else{ n-=1; count++; } } cout n >> k; while (true) { // N이 K로 나누어 떨어지는 수가 될 때까지만 1씩 빼기 int target = (n / k) * k; result += (n - target); n = target; // N이 K보다 작을 때 (더 이상 나눌 수 없을 때) 반복문 탈출 if (n < k) break; // K로 나누..
숫자 카드 게임 #include #include #include using namespace std; int map[101][101]; vector comparenum; int main() { freopen("input.txt","r",stdin); int n,m; cin>>n>>m; for(int i=0;imap[i][j]; int num=10001; int idx=0; while(n--){ int num=10001; for(int i=0;imap[idx][i]){ num=map[idx][i]; } } comparenum.push_back(num); idx++; } sort(comparenum.begin(),comparenum.end()); cout n >> m; // 한 줄씩 입력 받아 확인하기 for (int i ..
큰 수의 법칙 #include #include #include using namespace std; int n,m,k; vector v; int ans; int main() { freopen("input.txt","r",stdin); cin>>n>>m>>k; for(int i=0;i>num; v.push_back(num); } sort(v.begin(),v.end()); int check=0; while(m--){ if(check> m >> k; // N개의 수를 공백을 기준으로 구분하여 입력 받기 for (int i = 0; i > x; v.push_back(x); } sort(v.begin(), v.end()); // 입력 받은 수들 정렬하기 int first = v[n ..