백준 1018 : 체스판 다시 칠하기
백준 (C99)/브루트 포스 (完) 2022. 2. 4. 21:04

풀고나니 어렵지 않았는데 풀때는 아리까리했던 문제다. 중요한건 체스판이 바뀌는 횟수를 측정하는건데, 시작점이 고정이 아니라는 것이다. 시작지점에 따라 체스판을 다시 색칠해야하는 횟수가 바뀐다, 우리는 이 중에서 최소를 찾아야 한다는게 문제이다. 그렇다면 일단 체스판 색깔을 바꾸는 로직을 짠 다음에, 시작 위치를 바꿔주는 로직을 합쳐서 코드를 짜면 되겠다는 생각으로 코딩을 시작했다. 우선, 나는 색깔을 바꾸는 로직을 처음에 다음과 같이 생각했다. 1. 그 줄 맨 앞의 문자를 A라는 변수에 저장한다. 2. 올바른 다음 상태(다시 칠하지 않아도 되는 경우) 저장하는 변수 B를 만든다. 3. A의 변수를 토대로 B의 값을 정한다. ex) A가 W라면 B의 값은 B가 된다. 4. 반복문을 통해 그 줄의 값들을 비..

백준 1436 : 영화감독 숌
백준 (C99)/브루트 포스 (完) 2022. 2. 3. 20:03

결국 1부터 나머지가 6이 세번 연속되는 수를 찾는것이므로, 나머지 연산을 통해서 지속적으로 카운팅을 해준다. #include int solve() { int N, cnt = 0, temp = 1, cur = 0, i = 0; scanf("%d", &N); while(cur 0) { if(temp % 10 == 6) cnt++; else cnt = 0; if(cnt == 3) { cur++; if(cur == N) printf("%d\n", i); } temp /= 10; } cnt = 0; i++; } } int main() { solve(); return 0; } 문제의 난이도가 크게 어렵지 않았다. 오히려 지금 안올라온 체스판이 저한테는 조금 더 ..

백준 7568 : 덩치
백준 (C99)/브루트 포스 (完) 2022. 2. 2. 22:20

생각을 해 보면, 결국 몸무게나 키가 둘다 누군가보다는 커야 등수가 올라간다. 반대로 등수를 매길때 내려가려면 몸무게나 키가 모두 누군가보다 작아야한다. 나는 이번 문제에서 그냥 전수조사 했다. 어차피 그러라고 만든 문제같기도 하고.. #include int solve() { int N, rank = 1; scanf("%d", &N); int size[N][3]; for(int i=0;i

백준 2231 : 분해합
백준 (C99)/브루트 포스 (完) 2022. 2. 2. 19:45

1부터 N-1까지 전수조사해서 합이 N과 같은걸 찾는 문제이다 #include int solve() { int N, sum, temp, check = 0; scanf("%d", &N); for(int i=1;i 0) { sum += temp % 10; temp /= 10; } //분해합과 N이 같으면 출력 if(sum == N) { printf("%d\n", i); check = 1; break; } } if(check == 0) printf("0\n"); } int main() { solve(); return 0; } 생각보단 까다로워따

백준 2798 : 블랙잭
백준 (C99)/브루트 포스 (完) 2022. 2. 2. 17:47

간단하게 생각해서 원소 3개씩 집어서 다 더해본다음 M에서 빼서 차가 얼마나 적은가만 판별해주면 된다. 단, 주의 할 점은 음수는 고려하면 안된다는것. 0보다 크다는 조건을 빼먹지 말자 #include int solve() { int N, M, min = 99999, sum = 0; int arr[100]; scanf("%d %d", &N, &M); for(int i=0;i