[랜덤 마라톤] Modern Art(21616)

lhs's avatar
Nov 16, 2024
[랜덤 마라톤] Modern Art(21616)
notion image
notion image

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

LHS's Study Space