반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- LeetCode 83번
- Queue
- 자료 구조
- 연결리스트 정렬
- 실패함수
- 큐
- 해시를 사용한 집합과 맵
- 이분 탐색
- 별 찍기
- 재귀
- 사칙연산
- 연결리스트 중복제거
- 다이나믹 프로그래밍
- 프로그래머스
- 수학
- 시뮬레이션
- 정수론
- LeetCode Remove Duplicates from Sorted List in c
- 구현
- 정렬
- 문자열제곱
- KMP알고리즘
- 임의 정밀도 / 큰 수 연산
- 조합론
- 스택
- 브루트포스 알고리즘
- 큰 수 연산
- LeetCode 83 c언어
- 문자열
- 유클리드 호제법
Archives
- Today
- Total
hahn
단계별로 풀어보기(브루트 포스 - 체스판 다시 칠하기) 본문
728x90
반응형
1018번: 체스판 다시 칠하기 (acmicpc.net)
http://boj.kr/88c09612327e4f2ca1f9bd6583d86a5c
더보기
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int rowCount, columnCount,
startW, startB, result;
rowCount = sc.nextInt();
columnCount = sc.nextInt();
result = rowCount * columnCount;
String compare = "WBWBWBWB";
String[] arr = new String[rowCount];
for(int i = 0; i < arr.length; i++) {
arr[i] = sc.next();
}
for(int i = 0; i < arr.length - 7; i++) {
for(int k = 0; k < columnCount - 7; k++) {
startW = 0;
startB =0;
for(int j = i; j < i + 8; j++) {
for(int l = k; l < k + 8; l++) {
if(j % 2 == 0 ? compare.charAt(l - k) == arr[j].charAt(l) : compare.charAt(l - k) != arr[j].charAt(l)) {
startW++;
}else {
startB++;
}
}
}
if(result > startW) result = startW;
if(result > startB) result = startB;
}
}
System.out.println(result);
}
}
문제를 읽어보고 음.. 좀 까다롭다고 생각했다.
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
or
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
위와 같은 형태의 체스판을 얻는 게 목적이므로
저걸 원형으로 두고 각 부분과 비교하여
최솟값을 구하면 되겠다 생각했고,
일단 블록을 나누는 것과 원형과 비교하는 것을
구현해야겠다고 결론을 내렸다.
for문으로 나누고 원형 비교는
WBWBWBWB 기준으로 두고
삼항 연산자와 mod 연산을 응용하여 카운트하게 했다.
구현하고 나니 답이 이상하게 나와서 뭐가 문제인 건가 생각해봤는데
for문 순서를 하나 잘못했었다.
중첩 for문 쓰니까 가끔 헷갈리는 경우가 있다 ㅋㅋ;
728x90
반응형
'코딩테스트 연습 > 백준(JAVA)' 카테고리의 다른 글
[백준 - JAVA] 막대기 (0) | 2021.09.14 |
---|---|
단계별로 풀어보기(브루트 포스 - 영화감독 숌) (0) | 2021.09.14 |
단계별로 풀어보기(문자열 알고리즘1 - 광고) (0) | 2021.09.12 |
단계별로 풀어보기(정렬 - 수 정렬하기 2) (0) | 2021.09.12 |
단계별로 풀어보기(정렬 - 수 정렬하기) (0) | 2021.09.12 |