본문 바로가기

dev/코테

숫자 카드 나누기

프로그래머스에서 숫자 카드 나누기 문제를 풀었습니다.

 

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

 

프로그래머스

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

programmers.co.kr

 

문제에 대한 설명은 위의 링크에서 확인하시면 됩니다.

 

소스 코드

 

두 개의 배열의 각각 최대 공약수가 상대편 배열의 최대공약수가 되지 않는 것이 이 문제의 핵심입니다.

 

먼저 배열을 오름차순으로 정렬합니다.(35 ~ 36라인)

 

각 배열의 최대공약수를 조회합니다.(38 ~ 39라인, 50 ~ 58라인, 60 ~ 68라인)

 

최대공약수를 조회할 때 유클리드 알고리즘을 사용해야 합니다.(60 ~ 68라인)

 

그렇지 않고 숫자 하나씩 최대공약수를 구하게 되면 시간제한에 걸리기 때문입니다.

 

각 배열의 최대공약수를 비교하여 큰 최대공약수를 기준으로 상대편 배열에 적용되는지 확인한 뒤

 

상대편 배열에도 최대공약수가 적용되면 해당 결과의 값은 0으로 리턴하고, 그렇지 않으면 최대공약수를 리턴합니다. (41 ~ 45라인, 70 ~81라인)

 

채점 결과

'dev > 코테' 카테고리의 다른 글

문자열 압축  (0) 2024.04.24
석유 시추  (0) 2024.03.31
110 옮기기  (0) 2024.03.30
숫자 변환하기  (0) 2024.03.30
카카오프렌즈 컬러링북  (0) 2024.01.12