쵼쥬
쵼쥬의 개발공부 TIL
쵼쥬
전체 방문자
오늘
어제
  • 분류 전체보기 (276)
    • 코딩테스트 (192)
      • [알고리즘] 알고리즘 정리 (7)
      • [백준] 코딩테스트 연습 (126)
      • [프로그래머스] 코딩테스트 연습 (59)
    • Spring (71)
      • [인프런] 스프링 핵심 원리- 기본편 (9)
      • [인프런] 스프링 MVC 1 (6)
      • [인프런] 스프링 MVC 2 (4)
      • [인프런] 실전! 스프링 부트와 JPA 활용1 (7)
      • [인프런] 실전! 스프링 부트와 JPA 활용2 (5)
      • [인프런] 실전! 스프링 데이터 JPA (7)
      • [인프런] 실전! Querydsl (7)
      • JWT (5)
      • [인프런] Spring Cloud (17)
      • [인프런] Spring Batch (4)
    • Java (6)
      • [Java8] 모던인자바액션 (4)
      • [부스트코스] 웹 백엔드 (2)
      • [패스트캠퍼스] JAVA STREAM (0)
    • CS (6)
      • 디자인 패턴과 프로그래밍 패터다임 (2)
      • 네트워크 (4)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 비트마스킹
  • spring
  • 인프런
  • MVC
  • 프로그래머스
  • 자바
  • 백분
  • BFS
  • 알고리즘
  • 스프링
  • 위클리 챌린지
  • 누적합
  • querydsl
  • 타임리프
  • 구현
  • Spring Data JPA
  • jpa
  • 백준
  • 코딩테스트
  • 부스트코스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쵼쥬

쵼쥬의 개발공부 TIL

램프 - 1034번
코딩테스트/[백준] 코딩테스트 연습

램프 - 1034번

2021. 11. 26. 14:19


풀이 방법

행의 모든 열이 1인 상태(켜진상태) 인 경우를 세는 것이기 때문에 초기 상태가 같은 경우에는 스위치를 눌러도 변화된 상태가 같기 때문에 Map에 넣어서 갯수를 세어주었다. 

K가 짝수일 때는 행의 0의 개수가 짝수일 때 모두 1로 바뀔 수 있고 K가 홀수일 때는 행의 0의 개수가 홀수일 때 모두 1로 바뀔 수 있어서

나누어서 생각해주었다.

 

내 코드

package com.company;

import java.io.*;
import java.util.*;

public class Main {
    static int N, M, K;
    static Map<String, Integer> map = new HashMap<>();

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());

        for (int i = 0; i < N; i++) {
            String str = br.readLine();
            map.put(str, map.getOrDefault(str, 0) + 1);
        }

        K = Integer.parseInt(br.readLine());

        int max = 0;
        for (String s : map.keySet()) {
            int count = 0;
            for (int i = 0; i < M; i++) {
                if (s.charAt(i) == '0') {
                    count++;
                }
            }
            if (count <= K) {
                if (K % 2 == 0 && count % 2 == 0) {
                    max = Math.max(max, map.get(s));
                } else if (K % 2 == 1 && count % 2 == 1) {
                    max = Math.max(max, map.get(s));

                }
            }
        }

        System.out.println(max);
    }
}

'코딩테스트 > [백준] 코딩테스트 연습' 카테고리의 다른 글

암호코드 - 2011번  (0) 2021.12.01
공유기 설치 - 2110번  (0) 2021.12.01
감소하는 수 - 1038번  (0) 2021.11.25
리모컨 - 1107번  (0) 2021.11.23
미친 로봇 - 1405번  (0) 2021.11.22
    '코딩테스트/[백준] 코딩테스트 연습' 카테고리의 다른 글
    • 암호코드 - 2011번
    • 공유기 설치 - 2110번
    • 감소하는 수 - 1038번
    • 리모컨 - 1107번
    쵼쥬
    쵼쥬

    티스토리툴바