늘 그렇듯 문제 정의하고 어떻게 풀지 짰다. 저걸 코드로 옮기면서 문제를 두 개 발견했는데 (하나는 문제는 아니지만) 먼저 어짜피 홀수 줄 아니면 짝수줄이라 굳이 변수를 두 개 만들 필요가 없다. 나머지는 엔터키..! 자꾸 뭔가 이상해서 확인해봤더니 scanf(c)가 enter까지 받아서 계산을 잘못 하고 있었다.
#include <iostream>
int main() {
char c;
bool isOdd = true;
int count = 0;
for(int i = 1; i <= 64; i++){
scanf("%c", &c);
if(isOdd){
if(i%2 == 1 && c == 'F')
count++;
}
else{
if(i%2 == 0 && c == 'F')
count++;
}
if(i%8 == 0){
scanf("%c", &c); //remove buffer
isOdd = !(isOdd);
}
}
printf("%d", count);
return 0;
}
아무튼 두 개를 고쳤고 맞았다! 지금 보니 remove buffer가 아니고 그냥 엔터키 지우는건데 저리 적었었네
나는 하나씩 읽어서 어느 줄인지 확인 하고 흰색 칸 확인하고 다음 줄 띄우고 했는데 그냥 한 줄 읽어서 흰색 칸이고 F인지 확인할 수 있었다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int count = 0;
//한 줄씩 읽는다
for(int i = 0; i < 8; i++){
string s;
cin >> s;
for(int j = 0; j < 8; j++){
if(s[j] == 'F' && (i+j) % 2 == 0)
count++;
}
}
printf("%d", count);
return 0;
}
홀수 짝수 달라지는 건 어떻게 처리하지 했는데 그냥 i값이 달라지면서 자동으로 처리된다
'백준' 카테고리의 다른 글
6539 만취한 상범 (0) | 2019.10.09 |
---|---|
1037 약수 (0) | 2019.10.09 |
1009 분산처리 (0) | 2019.10.08 |
2902 KMP는 왜 KMP일까? (0) | 2019.10.08 |
2309 일곱 난쟁이 (0) | 2019.10.08 |