[프로그래머스] 2차원 동전 뒤집기

2023. 8. 12. 15:42·Coding Test/programmers
목차
  1. 분석
  2. 풀이
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/131703

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

분석

  1. beginning, target 값이 다르면 1, 같으면 0으로 이차원 diff 배열에 저장
  2. 행마다 뒤집으면서 모든행을 1행과 같게 만들어서, 다른 값(1)이 있는 열만 뒤집으면 목표 상태로 만들 수 있음
    1. diff 1행과 2~n번째 행 비교 : 다르면 뒤집기
    2. 뒤집어도 첫행과 다르다면 목표 상태로 만들 수 없기 때문에 -1 리턴
  3. 모든 행은 같으므로 1행의 다른값(1)의 갯수를 체크 (1행의 1의 갯수 = 열 뒤집는 횟수)
  4. 행 뒤집는 횟수 + 열뒤집는 횟수, 열뒤집는 횟수 + 행뒤집는 횟수 중 최솟값 리턴

 

풀이

def solution(beginning, target):
    n = len(target)
    m = len(target[0])

    diff = [[beginning[i][j] ^ target[i][j] for j in range(m)] for i in range(n)]

    sumr = 0
    for i in range(1,n):
        if (diff[i] != diff[0]):
            sumr+=1 # 행 뒤집는 횟수
            if list(map(lambda x: x ^ 1, diff[i])) != diff[0]:
                return -1

    sumc= sum(diff[0]) # 열 뒤집는 횟수

    return min(sumr+sumc, (n-sumr)+(m-sumc))

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
  1. 분석
  2. 풀이
'Coding Test/programmers' 카테고리의 다른 글
  • [프로그래머스] 시험장 나누기 (이분탐색)
  • [프로그래머스] 코딩 테스트 공부 (DP, 다익스트라)
  • [프로그래머스] N으로 표현
  • [프로그래머스] 스타수열
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (467)
      • Spring (19)
      • JPA (4)
      • Cloud & Architecture (15)
        • Kubernetes (5)
        • Docker (3)
        • MSA (2)
        • GCP (1)
        • AWS (4)
      • Devops (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Git (4)
      • DB (4)
      • Java (9)
      • Python (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    조합
    큐
    백준
    트리
    그래프
    DP
    다익스트라
    덱
    재귀
    프로그래머스
    LIS
    DFS
    월간코드챌린지
    알고리즘
    구현
    정렬
    힙
    자료구조
    최단거리
    BFS
    파이썬
    동적계획법
    최대공약수
    Algorithm
    구간합
    스택
    이분탐색
    그리디
    플로이드워셜
    최소신장트리
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
[프로그래머스] 2차원 동전 뒤집기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.