-
[BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(๊ฒฝ์ฌ๋ก)SW Test/BaekJoon 2020. 4. 19. 04:22๋ฐ์ํ
- ์ด ๋ฌธ์ ๋ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค.
๋ฌธ์
์์
ํ์ด
#include <iostream> #include <cmath> using namespace std; // ๊ฒฝ์ฌ๋ก ๋๋์ง ํ์ธํ๋ ํจ์ bool find_load(int data[],int n,int l){ int s=data[0]; // ๊ฐ์ฅ ์ ์์ int cnt=1; // ๊ฐ์ฅ ์ ์์๋ ๊ฐ์ ์ ์ฒดํฌํ๊ธฐ ์ํ count, ์ฒ์ ์์์ 1 for(int i=1;i<n;i++){ if(s==data[i]){ // ๊ฐ์ผ๋ฉด +1 cnt++; } else if(abs(s-data[i])>=2){ // ๊ฒฝ์ฌ ์ฐจ์ด๊ฐ +2, -2์ด์์ด๋ฉด ์ข ๋ฃ return false; } else if(s-data[i]==1){ // ๊ฒฝ์ฌ๊ฐ ๋ฎ์์ง ๊ฒฝ์ฐ : l๋งํผ์ ๊ฒฝ์ฌ๊ธธ์ด๊ฐ ์กด์ฌํด์ผ ํ๋ค bool find=true; for(int j=i;j<i+l;j++){ if(data[i]!=data[j]){ // ๊ฒฝ์ฌ๊ฐ l๋งํผ ํ์ธํ๋ ๋์ ๋ฌ๋ผ์ง ๊ฒฝ์ฐ ์ข ๋ฃ return false; } } if(find){ // l๋งํผ ๊ธธ์ด ๋ชจ๋ ๊ฐ์ ๊ฒฝ์ฐ i+=l-1; // ์ธ๋ฑ์ค๋ ๋ง์ง๋ง์ ํด๋นํ๋ ์ซ์. => ex) l=2์ผ๊ฒฝ์ฐ 3 2 1 ์ด๋ฉด 1์ ํด๋นํ๋ ์ธ๋ฑ์ค if(i<n){ // ๋ง์ง๋ง ์ธ๋ฑ์ค์ ํด๋นํ๋ ์์ s=data[i]; cnt=0; // cnt=0์ด์ฌ์ผ ํ๋๋ฐ ์ด์ ๋ 3 3 2 2 3 3 ์ด๋ด๊ฒฝ์ฐ 2 2๋ฅผ ๋ชจ๋ ํ ๊ฒฝ์ฌ๋ก๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๋ค์๋ ๋ชป๋ค์ด๊ฐ } } } else{ // ๊ฒฝ์ฌ๊ฐ ๋์ ๊ฒฝ์ฐ : cnt๋ก ๊ทธ ์ ๊ฒฝ์ฌ์ ๊ธธ์ด ์ฒดํฌํ๊ณ ์์์ if(cnt>=l){ // l๋ณด๋ค ์งง์ ๊ฒฝ์ฐ๋ผ๋ฉด ์ข ๋ฃ, ๊ทธ๋ ๋ค๋ฉด ํ์ฌ ๋์์ง ๊ฒฝ์ฌ ๋ฐ์ดํฐ ํ๋ s=data[i]; cnt=1; } else{ return false; } } } return true; } int main(){ int answer=0; int n,l; cin>>n>>l; int arr[100][100]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cin>>arr[i][j]; } } // ๊ฐ๋ก ๊ฒฝ์ฌ๋ก ํ์ธ for(int i=0;i<n;i++){ int data[100]; for(int j=0;j<n;j++){ data[j]=arr[i][j]; } bool check=find_load(data,n,l); if(check){ answer++; } } // ์ธ๋ก ๊ฒฝ์ฌ๋ก ํ์ธ for(int j=0;j<n;j++){ int data[100]; for(int i=0;i<n;i++){ data[i]=arr[i][j]; } bool check=find_load(data,n,l); if(check){ answer++; } } cout<<answer; }
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.
๋ฐ์ํ'SW Test > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(ํฑ๋๋ฐํด) (0) 2020.04.21 [BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ) (1) 2020.04.20 [BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(๋ก๋ด ์ฒญ์๊ธฐ) (2) 2020.04.20 [BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(๋ฏธ์ธ๋จผ์ง ์๋ !) (2) 2020.04.19 [Baekjoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(์ฐ๊ตฌ์) (0) 2020.04.19