숫자 카드 나누기 (최대공약수)

2023. 8. 4. 20:10·Coding Test/programmers
728x90

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

 

프로그래머스

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

programmers.co.kr

 

분석

1. 각 배열의 최대공약수 구하기

2. 최대공약수로 다른 배열의 숫자가 나눠지는지 확인하기

3. 최대값 리턴

 

풀이

import sys,math
def solution(arrayA, arrayB):

    def find(array): #최대공약수
        GCD = 0
        for i in range(len(array)):
            GCD = math.gcd(GCD, array[i])
        return GCD

    def check(array, g): # 다른 배열 나눌 수 있는지 체크
        for x in array:
            if x % g == 0:
                return 0
        return g

    gA=find(arrayA)
    gB=find(arrayB)

    gA=check(arrayB, gA)
    gB=check(arrayA, gB)

    return max((gA, gB))
from functools import reduce
from math import gcd


def solution(arrayA, arrayB):
    gA, gB = reduce(gcd, arrayA), reduce(gcd, arrayB) # 최대공약수
    
    answer = []
    
    if all(each % gB for each in arrayA):
        answer.append(gB)
    if all(each % gA for each in arrayB):
        answer.append(gA)
        
    return max(answer) if answer else 0
[10, 20], [5, 17]

arrayA : i gB i%gB arrayB : i gA i%gA
10 1 0 5 10 5
20 1 0 17 10 7
arrayA % gB
FALSE
(나누어 떨어짐)
arrayB % gA
True
(나누어 떨어지지 않음)

 

 

728x90
저작자표시 비영리 변경금지
'Coding Test/programmers' 카테고리의 다른 글
  • 혼자 놀기의 달인 (리스트 인덱스, 값 union)
  • 멀쩡한 사각형 (최대공약수)
  • 가장 큰 정사각형 찾기 (DP)
  • 가장 긴 팰린드롬 (2중 for문 인덱스, 투포인터, 문자열 길이)
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
    정렬
    구현
    Algorithm
    스택
    덱
    최소신장트리
    LIS
    DFS
    월간코드챌린지
    백준
    힙
    최대공약수
    자료구조
    그리디
    조합
    큐
    알고리즘
    재귀
    플로이드워셜
    그래프
    최단거리
    다익스트라
    이분탐색
    구간합
    프로그래머스
    BFS
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
숫자 카드 나누기 (최대공약수)
상단으로

티스토리툴바