목록Algorithm/Baekjoon (32)
-
매우 어려운 규칙이 있을것이라 생각하고 삽질만 했다. 사실 loop 돌면서 조건에 따라 카운트만 해주면 되는것! 이 문제 또한 문제를 제대로 파악하지 못해 특정 조건을 캐치하지 못했다. 하지만 시관초과. 코드: #include "stdafx.h"#include using namespace std; int main(){int x, y, M, N,T=0;cin >> T; while (T--){int i = 1, j = 1,cnt=1;bool flag = false;cin >> M >> N >> x >> y; while (true){if (i == M && j == N) {break;}if (i > M) i = 1;if (j > N) j = 1;if (i == x && j == y){flag = true;br..
틀린 코드: 틀린 이유느 1123699 입력이 있으면 2가 나와야하는데 3이나온다. 이유는 아래 알고리즘에 따라 단순하게 같은 숫자가 나오거나 6과 9의 경우 cnt를 증가시켰기 때문이다. #include #include using namespace std; int main(){ int check_1=0; int n; int num=0,i=0,cnt=1; cin>>n; num = n; while(num>0) { num /= 10; i++; } int arr[i]; i=0; num = n; while(num>0) { arr[i++] = num%10; if(arr[i-1] == 6 || arr[i-1] == 9) { check_1++; if(check_1 %2 != 0 && check_1 > 2) { cnt..
코드: #include using namespace std;int arr[15][14];int main(){ int T; cin>>T; for(int i=0; i=0; i--) { for(int j=0; jk>>n; cout
코드 #include using namespace std; int main(){ int T; cin>>T; while(T--) { int H,W,N; int k = 1; int ans=0; bool flag = false; cin>>H>>W>>N; int arr[H][W]; for(int i=0; i
내가 생각한 접근 방법 while(T--) { int k = 1,tmp=0,cnt=0; int kn[3] = {0,}; cin>>x>>y; tmp = x + k; cnt += 1; while(tmp == y-1) { if(k==1) {kn[0] = 0; kn[1] = 1; kn[2] = 2;} else { kn[0] = k-1; kn[1] = k; kn[2] = k+1; } //Todo. } } 큰 숫자를 우선적으로 작동시키고 만약 Kn의 값 범위에서 진행하다가 Y-1 에 도달할 수 없을 경우 다시 되돌아가 K의 값을 차감하고 모든 경우를 탐색? 해보려 하였으나 여기서 더이상 진행시킬 엄두가 나지 않는다. 매운 더러운 스파게티 코드가 나올게 뻔하다. (물론 BF나 다른 방법으로도 풀 수 있을듯하나 아직 ..
#include using namespace std; int main(){ int n; int cnt = 1; int UB = 1; int M=1,B=1; int num=1; bool flag = false; cin>>n; while(!flag) { if(num%2==0) { for(int i=1; i=1; i--) { if(n==cnt) { M = i; B = num-i+1; flag=true; break; } cnt++; } } UB = num+cnt; num++; } cout
#include using namespace std; void F(int a[]){ for(int i=0; i