728x90
반응형
푸는데 오래걸렸다..
실버인데 못풀어? 이러면서
오른쪽 방향으로 가로/세로/우상향/우하향 을 탐색하는데 주의할것은 지금 위치 전이나, 지금 위치에서 5번째 떨어진곳에 자신과 같으면 안된다.
#include<vector>
#include <iostream>
using namespace std;
int arr[20][20]={0};
int dr[4]={0,1,1,-1};
int dc[4]={1,0,1,1};
bool cnt=0;
int main()
{
for(int i=1;i<=19;i++){
for(int j=1;j<=19;j++){
cin>>arr[i][j];
}
}
//연속으로 5개
//6개가 어딘가 있어도 되는가?
//6개인데 5개일수도 있잔아 ..
//모든 배열에 대해 탐색
for(int i=1;i<=19;i++){
for(int j=1;j<=19;j++){
if(arr[i][j]==0)continue;
//방향
for(int s=0;s<4;s++){
//지금 위치 바로전, 5개 이후 같으면 x
//앞으로 4개
bool flag=true;
for(int k=1;k<=4;k++){
int nr=i+k*dr[s];
int nc=j+k*dc[s];
if(nr<1 || nc<1 || nr>19 || nc>19 || (arr[i][j]!=arr[nr][nc])){
flag=false; break;
}
}
if(flag){
int x1=i-dr[s]; int y1=j-dc[s];
if(x1>=1 && x1<=19 && y1>=1 && y1<=19 && arr[i][j]==arr[x1][y1])continue;
x1=i+5*dr[s]; y1=j+5*dc[s];
if(x1>=1 && x1<=19 && y1>=1 && y1<=19 && arr[i][j]==arr[x1][y1])continue;
cout<<arr[i][j]<<'\n';
cout<<i<<' '<<j;
return 0;
}
}
}
}
cout<<0;
return 0;
}
728x90
반응형
'하루 1문제 챌린지 > Silver1' 카테고리의 다른 글
백준 2529번 부등호(C++) 🚩 (0) | 2024.03.01 |
---|---|
백준 1080번 행렬(C++)🚩🚩 (0) | 2024.03.01 |
백준 2841번 외계인의 기타연주(C++) (1) | 2024.02.16 |
백준 15903번 카드합체놀이 (C++) (1) | 2024.02.16 |
백준 16206번 롤케이크(C++)🚩 (0) | 2024.02.13 |