

1. 문제 풀이 아이디어
- 같은 줄에 페인트를 칠하면 색이 원래대로 돌아온다.
- 행과 열을 곱한 수만큼 색이 원래대로 돌아온다.
- 위 두 가지 규칙을 생각하면 문제를 해결할 수 있다.
2. 나의 정답 코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(bufferedReader.readLine());
int n = Integer.parseInt(bufferedReader.readLine());
int k = Integer.parseInt(bufferedReader.readLine());
Set<String> set = new HashSet<>();
for (int i = 0; i < k; i++) {
String command = bufferedReader.readLine();
if (set.contains(command)) {
set.remove(command);
} else {
set.add(command);
}
}
int r = 0, c = 0;
for (String s : set) {
if (s.startsWith("R"))
r++;
else
c++;
}
System.out.println(r * n + c * m - r * c * 2);
bufferedReader.close();
}
}
3. 정리
set
에 입력을 저장하고, 중복되면 삭제한다.
set
에 저장된 입력 중 행과 열의 개수를 각각 계산한다.
- 각 행렬에 칠해진 수를 더한 후, 중복된 행렬의 값에 2를 곱해 빼면 답이 나온다.
Share article